Open Harry-UA opened 1 week ago
Possible solutions:
We will think on this and review.
we provide a very simple "/version" endpoint which returns a set of key-value pairs of type String:
{ "DairyNet": "44.1.0", "icar": "1.3.1" }
This version endpoint is location-independant and is also often used for making first steps to get connected.
This works for all subsequent GET requests to your API so they know what to expect. But what about POST/PUT requests to your API? How do you know what to expect?
Maybe I didn't get your point Harry, but why should there be a differentiation between GET and POST/PUT? If there is more than one version supported, the interfaces have to be clearly separated from each other, e.g. using a different path like
That could work, but I don't know if it's convenient to have endpoints for all different minor/build versions. To me it sound more logic to have different URL's for (potentially incompatible) major versions and to have a mechanism in place to detect which minor and or build version is used in the communication.
I think, we will start to introduce versions in the API when we switch to the next major-version. All other changes (minor-versions) are expected to be compatible as we stick to semantic versioning. But as we haven't checked the compatibility in Java (1.3.x to 1.4.y) so far, the grade of compatibility is not known.
We would like to have the ICAR version number present in the Json files to be able to make version policy agreements with our partners.