API compatibility policy and deprecation policies
On occasion, Qmatic may choose to retire a service offered in the API Manager. This may be because the future roadmap for the service requires breaking changes (thus demanding a new major version), or because the service depends on, or relates to, user-facing product capabilities that are being retired.
When a breaking change is introduced to the Appointments Manager API, a new dated version will be released. To avoid breaking the client’s code, the version should not be changed before the integrated client is ready to upgrade.
Backwards-compatible changes
These changes are generally safe for the customers. However, the change must consider popular client frameworks that might generate a code that conflicts with this change.
Cloudberry Qmatic developers team consider the following changes to be backwards-compatible:
Adding new API resources
Adding new optional request parameters or headers to existing API methods
Adding new properties to existing API resources
Changing the length or format of opaque strings such as object IDs, error messages, and other human-readable strings
This includes adding or removing fixed prefixes.
Changing an error message and resource descriptions in the API response
Increasing the scope of error message ID
Rate-limit headers and errors.
Adding new event types
Breaking changes (examples)
Removing or renaming an API source
Removing or renaming Enum values
Changing the type of a field
Changing the visible behaviour of existing requests
Deprecation policy
The following notifications are given to mitigate potential issues when API is deprecated. The deprecation period is 12 months.
Notice of deprecation
Notice of deprecation are issued through the internal and external channels at least 12 months before the proposed end life date. The notice should contain a notification about the deprecation with the links to more detailed info, including the deprecated version, the replacement version the end-of-life date. Deprecation announcements will be accompanied by guidance on how to respond if your application is impacted by the announcement, including a migration guide if a new major version is available or recommendations of alternative third-party services where possible.
The notification continues until the APIs reach the end-of-life date. Once the date is reached:
Documentation content for the old version will be removed
Swagger documentation for the deprecated API will be removed or hidden
At the end of the deprecation period, the service concerned will be retired and no longer be accessible to applications. After this date, any attempt to use the service will fail. All documentation for the service will also be taken offline.
Swagger
Swagger defines the API contract to customers. The APIs that are being deprecated are marked with the tab “deprecated “.
Upgrade reference instructions for client
The possibility to roll back for 72 hours
Informing about the updates
The information about the new additions and changes to Appointments Booking API should be posted to our channels of communication. Possibility to subscribe and stay informed should be provided. or the process of client notifications should be established.
Changelogs
Changelogs should be introduced. Changelog list should include all additions and APi updates in chronological order.