Versioning
The Seamless API is at version 1.0.0.
Every response carries the version in a header:
X-API-Version: 1.0.0
What the numbers mean
The version follows semantic versioning, MAJOR.MINOR.PATCH:
| Part | Changes when | Do you need to do anything? |
|---|---|---|
MAJOR | Something existing is removed or changes meaning | Yes. You will be told well in advance |
MINOR | Something is added: a new field, type, argument or query | No |
PATCH | A fix that does not change the schema | No |
There is one endpoint, and it always serves the latest version. The version is not part of the URL.
What stays the same
Within version 1 you can rely on the following:
- A field or query that exists will keep existing, with the same type and meaning.
- An argument that is optional will stay optional.
- Error codes will keep their meaning.
What can change without notice
The following can be added or reworded at any time. A client that allows for them will not be affected:
- New fields on existing types. GraphQL only returns the fields you ask for, so you will not see them until you want them.
- New types, queries and optional arguments.
- New values for fields that describe a kind of thing, such as an order line's
typeor a payment'stype. Handle a value you do not recognise sensibly instead of failing. - The wording of error messages. Branch on the error
code.
Retiring a field
Before a field is removed it is marked as deprecated in the schema, with a note saying what to use instead. It goes on working in the meantime. Deprecated fields are listed in the reference and flagged by GraphQL tools.
Changelog
1.0.0
The first release.
- Product library:
categories,products,modifierGroups. - Sales:
orders,refunds,dailySummary. - API keys limited by site and by permission.