Versioning
Updates are good, here's how we manage them.
Summary
Software is constantly evolving and we don't intend to stand still either. We will be regularly working on new features and improvements to give you access to the full functionality of Youmanage through a simple and convenient API.
In order to do this and to ensure we can move forward without breaking any existing applications that have been created, we will be releasing functionality incrementally.
This document details how we plan to release these versions, how long they will be supported for and .
Version Format
The API uses Semantic versioning which is a 3-component number in the format of Major.Minor.Patch, where:
- Major versions are likely to include significant new features and potentially breaking changes. As such these versions are not guaranteed to be backwards compatible
- Minor versions include improvements and smaller new features that are backwards compatible
- Patch versions are bug-fix releases and are always backwards compatible
Beta
The API is currently still in the development phase and as such will be subject to change. While we endeavour to make changes with minimal impact there is a small chance that new versions in the 0.x.x series may, in contradiction with the general versioning policy, introduce breaking changes. As with all releases, we will notify you of upcoming features, improvements and breaking changes in advance so that provisions can be made.
Once we have completed our initial phase of development and the API has reached it's first stable version of 1.0.0 the standard versioning rules will apply.
While we don't anticipate any problems during the beta phase, if you should encounter any issues during this period we would be grateful if you could work with us by providing a detailed report of the problem, to enable us to get a fix out as soon as possible.
Lifetime Policy
The current version of the API will be the focus of any future development work and will receive product enhancements and bug fixes.
When a new major version is released, we will provide access and support to the previous version for a suitable amount of time before deprecating that version to enable developers to migrate to the newer version. These versions will not receive any further product enhancements but will still receive patches for any critical bugs.
Once a version has been deprecated it will be supported for a further 6 months after which time you will no longer be able to request it. Any requests to an unsupported version will result in an error being returned.
Selecting a Version
The default version of the API will be the most current version that will be used, unless another version is specified.
You will be able to request a specific supported version of the API by sending an additional header in the request and we encourage you to do this to ensure there are no breaking changes between versions.
Details of which versions are supported and which have been deprecated will be returned in the request headers:
curl -iH "x-api-version: 0.1" "https://api.youmanage.co.uk/" HTTP/1.1 200 OK api-supported-versions: 0.1 Date: Fri, 16 Aug 2019 07:41:35 GMT
Troubleshooting
If you are receiving an Invalid Version (YM0073) response, it may be caused by either requesting a version that is not currently supported (the above will explain how to find out which versions are currently supported); or you have sent an invalid version number (see above for the correct format of version number).
The following is an example request for an invalid version number 2..4 and a sample response from the API:
curl -iH "x-api-version: 2..4" "https://api.youmanage.co.uk/" HTTP/1.1 400 Bad Request Date: Fri, 16 Aug 2019 07:52:52 GMT { "error": { "code": "YM0073", "reference": "https://developer.youmanage.co.uk/api/errors/ym0073", "target": "Version", "message": "An invalid version was requested", "details": null } }
Next up we'll be looking at rate-limiting - how the API controls the numbers of requests that can be sent.