in URL Timestamps Continuous Accept Headers n+1 version numbers in the host or URL path Very similar to n+1, and again in the URL Relies on client negotiation of what they can handle Version details sent as part of Accept headers
With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.
schedules for deprecations • Good communication and announcements • Example code • Migration paths • A place for asking questions and getting and giving feedback • Actually responding to their feedback in a thoughtful way ❤
API Complete Testing Review Changes Tooling Ensure all public endpoints have tests Also ensure GraphQL objects are covered by test queries Engineering needs to own the Public API Automated as much review as possible
An API is just the language to communicate with a service. And languages constantly evolve. Additions, change of meanings, lack of use… APIs are no different!