Выбор ответа Middle REST и документация API обновлено
Версионирование API
Вопрос
Команда меняет поле price с числа на объект {amount, currency}. Как это сделать, не сломав старые мобильные приложения?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Новая версия API (/v2/ или заголовок), старую держать до ухода клиентов. Смена типа поля это ломающее изменение: старое приложение упадёт при разборе.
Варианты ответа
- Поменять сразу: клиенты обновятся, а старые получат ошибку парсинга
- Отдавать оба формата в одном поле по очереди, в зависимости от клиента
- Новая версия API (
/v2/или заголовок), старую держать до ухода клиентовправильный ответ - Вернуть 410 Gone на старые запросы, чтобы приложения попросили обновиться
Разбор
Смена типа поля это ломающее изменение: старое приложение упадёт при разборе. Ломающие изменения выпускают в новой версии, старую держат и снимают по графику. Добавление нового необязательного поля обычно не ломает клиентов, удаление или смена типа ломает. 410 просто отрубит пользователей.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.