Versioning
URL-path versioning and what counts as a compatible change.
The API version is part of the URL path, so it is always obvious which contract a request uses.
Versions in the URL
Every endpoint currently lives under https://api.aveecare.com/v1. A future incompatible redesign would be published under a new prefix such as /v2, and /v1 would continue to exist alongside it.
Compatible changes
These changes can happen inside /v1 without a new version:
- Adding a new endpoint.
- Adding a new optional request field or query parameter.
- Adding a new field to a response object.
- Adding a new value to an enum or a new error code.
Announcements appear in the changelog.
Writing resilient clients
- Ignore response fields you do not recognise.
- Do not assume an enum is closed. Handle unexpected values gracefully.
- Do not depend on the order of fields in JSON objects.
- Treat IDs and cursors as opaque strings.
Requests are stricter than responses: the API rejects fields it does not know with the unknown_field error rather than silently ignoring them, which catches typos early.