
Адай Игибаев
Компания: Koronatech
Расскажу, как мы справляемся с версионированием REST API в условиях высоких нагрузок и частых релизов (каждые две недели). Вы узнаете, как избежать дублирования кода, сохранить обратную совместимость и упростить жизнь разработчику.
Мы используем аннотации (например, @VersionRange
), чтобы разделять логику для разных версий прямо в коде, и миксины Jackson для гибкой настройки сериализации без изменения исходных классов, и также рассмотрим вариант гибкой настройки сериализации без миксинов. Для Spring MVC мы разработали кастомный VersionAwareHandlerMapping
, который автоматически выбирает нужную версию API на основе заголовка Accept.
В случае JAX-RS (Jersey) я покажу, как модифицировать ресурсы при загрузке приложения, добавляя аннотации @Produces
для поддержки разных медиатипов.
Компания: Koronatech