<aside> đź“ť Work in Progress: This page is still a very rough draft. This page aims to address common versioning practices and also perhaps propose our own solution, which needs to be carefully refined.

</aside>

Fielding on versioning

Roy Fielding suggests never versioning APIs, and I’m inclined to agree with his original sentiment

In general, you should support older clients and applications for as long as possible. Each organization has its own needs and can take that concept as far as it wants to, but the whole point of REST is to decouple the server as much as possible to make that as practical as possible.

So, for that reason, we need to provide backwards compatibility checking features to make it easy to know and prove when APIs are backwards-compatible.


As described in API Design on the scale of Decades, (p. 23),

Within most public scenarios, an API service is updated by creating an entirely new v2 and slowly deprecating the original v1. Problems with v1 are tracked, [edits] are accumulated and introduced in a v2 that solves these issues, but introduces a complete breaking change with the previous version.

The downsides are

Recommended Practice

Parallel versioning

Ideas

What even are the use cases