


Here on the Apigee team at Google Cloud, we design, use and see a lot of APIs, and have developed some strong opinions about the right way to version them. With all this information, who’s an API developer to believe? (For some examples of those divergent views, take a look at this blog post and its bibliography and this interview with the author of the original REST dissertation). There's a lot of advice on the web about API versioning, much of it contradictory and inconclusive: One expert says to put version identifiers in HTTP headers, another expert insists on version identifiers in URL paths, and a third says that versioning of APIs is not necessary at all.
