Best Practices for HTTP API evolvability
REST is the architectural style of the Web, and closely related to REST is the concept of a HTTP API. A HTTP API is a programmer-oriented interface to a specific service, and is known by other names such as a RESTful service contract, resource-oriented architecture, or a URI Space.
I say closely related because most HTTP APIs do not comply with the uniform interface constraint in it’s strictest sense, which would demand that the interface be “standard” – or in practice: Consistent enough between different services that clients and services can obtain significant network effects. I won’t dwell on this!
One thing we know is that these APIs will change, so what can we do at a technical level to deal with these changes as they occur?