Версионируйте внешний контракт, оставляя общую бизнес-логику в сервисах. URL /v1, специальный заголовок или media type в Accept должны выбирать адаптер входа и представление ответа.
Как реализовать версионирование API через URL, заголовки или Accept-header с минимальным дублированием кода?
Версионируйте внешний контракт, оставляя общую бизнес-логику в сервисах. URL /v1, специальный заголовок или media type в Accept должны выбирать адаптер входа и представление ответа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Версионируйте внешний контракт, оставляя общую бизнес-логику в сервисах. URL /v1, специальный заголовок или media type в Accept должны выбирать адаптер входа и представление ответа.
Разные версии могут иметь отдельные DTO, validators и serializers, использующие один use case. Не размножайте контроллеры и доменную логику целиком без необходимости. При заголовочной версии учитывайте Vary и ключи кеша; документируйте default, поддерживаемые версии и срок прекращения поддержки. Ломающие изменения требуют новой версии, а добавление необязательного поля часто может быть совместимым.