Не думайте, что каждый пользователь обновляется до последней версии

Редактировать на GitHub

Хотя большинство ваших пользователей будут обновляться до самого последней версии в течение нескольких недель, всегда найдутся пользователи, которые этого не сделают. Это может иметь несколько причин. Часто это связано с используемой версией iOS, которую они не всегда могут обновить из-за возраста устройства.

Вы можете установить Facebook Messenger на iPad (2010) первого поколения. Не смотря на то что некоторые новые фичи не поддерживаются, основной функционал доступен благодаря версионости API.

Основная концепция заключается в том, что вы не обновляете существующий API, а вместо этого добавляете новый и позволяете им работать параллельно

https://your-api.com/1.0/drivers.json
https://your-api.com/1.1/drivers.json

В конечном итоге вам может потребоваться отключить или немного изменить семантику API. Даже если ваша компания имеет серьезные намерения о стабильности, иногда другого выхода нету. Это означает, что вы должны закодировать конечную точку API, которую можно запрашивать, чтобы узнать текущее состояние API.

https://your-api.com/1.0/status.json
https://your-api.com/1.1/status.json

Статус API должен включить в себя такую информацию как:

  • На каком этапе API? (тестирование, бета, прод)
  • Является ли API устаревшим? Если да, то на какую дату его планируется отключить?
  • Является ли API оффлайн? Если да, то так и останется или это временное отключение?