Новая версия нужна прежде всего для несовместимого изменения контракта. Совместимые расширения можно вводить в текущей версии, проверяя поведение реальных клиентов.
Всегда ли нужно выделять новую версию API при изменениях? Какие минусы у версионирования API и какие есть альтернативы?
Новая версия нужна прежде всего для несовместимого изменения контракта. Совместимые расширения можно вводить в текущей версии, проверяя поведение реальных клиентов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Новая версия нужна прежде всего для несовместимого изменения контракта. Совместимые расширения можно вводить в текущей версии, проверяя поведение реальных клиентов.
Удаление поля, изменение его смысла или обязательности обычно требует миграции клиентов. Добавление необязательного поля часто совместимо, но строгие десериализаторы и закрытые enum могут сломаться и от расширения. Поддержка версий увеличивает расходы на тестирование, документацию и исправления. Альтернативы: добавочные поля, новые ресурсы, объявление устаревания и согласованный переход. Feature flag управляет раскаткой, но сам по себе не делает несовместимый API совместимым.