I try get into versioning strategies for REST API's following Microsoft REST API Guidelines and trying to utilize for my ASP.NET Core solution.
From the guide :
Two options for specifying the version of a REST API request are supported:
Embedded in the path of the request URL, at the end of the service root:
https://api.contoso.com/v1.0/products/users
As a query string parameter of the URL:
https://api.contoso.com/products/users?api-version=1.0
Guidance for choosing between the two options is as follows:
...
- Services that guarantee the stability of their REST API's URL paths, even through future versions of the API, MAY adopt the query string parameter mechanism. This means the naming and structure of the relationships described in the API cannot evolve after the API ships, even across versions with breaking changes.
- Services that cannot ensure URL path stability across future versions MUST embed the version in the URL path.
I think that I don't quite understand what does 'cannot evolve' means in -
This means the naming and structure of the relationships described in the API cannot evolve after the API ships, even across versions with breaking changes.
Could you please give a little expanded definition ?
And do you have any example of Services that cannot ensure URL path stability across future versions ?
Thank you : )