Versioning
The version is in the path: https://api.getreeds.co/shipping/v1. This page explains what changes inside v1 and what doesn't.
Changes that don't need a new version
Reeds adds the following to v1 without a new version:
- new fields in responses and webhook payloads
- new event types
- new values for existing fields, such as a new delivery
statusor a newservice - new optional request fields and new endpoints
Write your client to cope:
- Ignore unknown fields. Don't fail when a response has a field you don't know.
- Tolerate unknown enum values. Give every
switchon a status or type a default branch. - Ignore unknown webhook event types. Reply
200and move on.
switch (delivery.status) {
case 'delivered': markDelivered(delivery); break;
case 'cancelled': markCancelled(delivery); break;
default: markInProgress(delivery); // includes statuses Reeds adds later
}
Breaking changes
A change that could break a correct client, such as removing a field or changing its meaning, goes to a new version, /v2.
/v1and/v2run side by side for six months.- Reeds announces the change on the changelog and by email to every account with live credentials.
- You migrate at your own pace within that window.
Stay informed
- Read the changelog. Every public change has an entry.
- Make sure the email address on your account is one that someone reads.