Выбор ответа Middle REST и документация API обновлено

Версионирование API

Вопрос

Команда меняет поле price с числа на объект {amount, currency}. Как это сделать, не сломав старые мобильные приложения?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Новая версия API (/v2/ или заголовок), старую держать до ухода клиентов. Смена типа поля это ломающее изменение: старое приложение упадёт при разборе.

Варианты ответа

  1. Поменять сразу: клиенты обновятся, а старые получат ошибку парсинга
  2. Отдавать оба формата в одном поле по очереди, в зависимости от клиента
  3. Новая версия API (/v2/ или заголовок), старую держать до ухода клиентовправильный ответ
  4. Вернуть 410 Gone на старые запросы, чтобы приложения попросили обновиться

Разбор

Смена типа поля это ломающее изменение: старое приложение упадёт при разборе. Ломающие изменения выпускают в новой версии, старую держат и снимают по графику. Добавление нового необязательного поля обычно не ломает клиентов, удаление или смена типа ломает. 410 просто отрубит пользователей.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме