2017-02-10 1 views
0

нужен способ \ дизайн разработать несколько версии Java яровой REST API, например: exampleAPiV1, exampleAPiV2, exampleAPiV3Путь дизайн разработать несколько версии Java пружинного REST API

все 3 апи версия должна быть живой в то же время. Также, если есть необходимость исправления ошибок в той или иной версии, изменения не влияют на другую версию с нулевым или минимальным дублированием кода.

+0

Зачем вам нужно несколько версий, как правило, вы можете сделать много мутаций для API и поддерживать обратную совместимость. Вы часто видите версию API в URL,/v1/exampleapi/sayhello, затем используете адаптер для обновления старых сообщений до самой новой версии, чтобы избежать дублирования кода. Другая возможность, которую я видел, - иметь одну конечную точку и включать заголовок версии. –

+0

У нас есть несколько клиентов для нашей ави. Не все из них согласны с переходом на новую версию. Я хочу, чтобы в любой момент времени мы могли поддерживать любую версию без нарушения или влияния существующих функций. Версии через заголовок или URL-адрес в порядке, но я ищу решение, которое помогает мне поддерживать код за api с минимальным дублированием. –

+0

Большую часть времени вы пытаетесь обновить старые сообщения до последней версии. Я сделал что-то подобное с протоколом внутренних настроек, который был изменен для каждой версии, а иногда даже в исправлениях, поэтому сервер должен был иметь возможность разговаривать с 5 + разными версиями клиентов. Фокус в том, чтобы иметь простой конвертер, который может обновиться только до следующей версии. Когда клиент говорит, что хочет поговорить с версией 3, вы конвертируете свое сообщение версии 5 до 4, а затем в 3 и обновляетесь с 3 до 5 при получении. Таким образом, добавление дополнительной версии требует конвертера от предыдущей к текущей версии. –

ответ

1

Для API управления версиями есть 3 способа:

  1. выставляют версию API в примере URL:

    http://api.example.com/v1/примеры

    http://api.example.com/v2/примеры

  2. Использование Ac СЕРТ Header, Accept: приложения/JSON + v1

  3. Используя пользовательский заголовок, X-Api-Version: 1

Касательно кода, вы можете использовать маршруты/заголовки для того, чтобы выполнить соответствующие функциональность.

Я имею в виду, что в определенной точке вашего приложения (средние товары) или до действий вы можете получить значение версии из URL-адреса или из заголовка и на основе значения, которое вы вызываете.

Смежные вопросы