Критические изменения — переименование поля, удаление конечной точки, изменение формы ошибки — приведут к сбою всех клиентов, собранных на основе старого поведения. Версионирование позволяет поставщику распространять новое поведение как новую версию, в то время как старая продолжает работать, и предоставляет клиентам период для миграции.
Версия обычно указывается в пути URL ( /v1 /, /v2 /), иногда в заголовке или типе носителя Accept, изредка в виде даты. Некритичные изменения — новые необязательные поля, новые конечные точки — включаются в версию. Когда старая версия выводится из эксплуатации, провайдер объявляет об этом заранее, часто с заголовками Deprecation и Sunset в своих ответах.
Добавление поля всегда безопасно. Это касается клиентов, которые игнорируют неизвестные поля, и нарушает работу таких клиентов при использовании строгих десериализаторов или тестов на основе снимков. Что считается "breaking" зависит от того, что фактически делают клиенты, поэтому поставщики публикуют свои правила совместимости.
API для друзей поддерживает обе версии: запрос GET /friends/v1/characters помечен как устаревший, а запрос GET /friends/v2/characters переименовывает job в occupation и переформатирует список; запрос GET /friends/version отображает поддерживаемые версии.
Все термины · Приёмы тестирования · Все 39 mock REST API
Последнее обновление