Внедрение контроля версий API Spring Boot Microservice - PullRequest
0 голосов
/ 02 апреля 2020

Необходимо изменить существующий контракт (полезные нагрузки запроса / ответа) микросервиса Spring Boot, которые по существу нарушают изменения (несовместимые с предыдущими версиями). И важно поддерживать обе версии контракта до некоторого времени - до того момента, пока все клиенты не обновятся до более новой версии.

Для достижения этой цели было решено использовать стратегию управления версиями URL. (например, / v1 / {resource} и /v2/ averageresource угождающий).

Теперь вопрос заключается в том, как лучше всего реализовать это в коде? Ниже предложены два варианта. решения

  1. Разветвите код первой версии ( / v1 ) и ведите его отдельно, пока эта версия не будет поддерживаться. По сути, это означает, что вырубить ветку из master и построить / развернуть из этой ветки и поддерживать два экземпляра одного и того же сервиса, каждый из которых поддерживает v1 и v2 версии соответственно.

  2. В той же основной ветке введите отдельный пакет (например, service.api.v2.request ), поместите все классы запросов / ответов полезной нагрузки api и представьте новый контроллер конечных точек. поддерживать ( / v2 ). Этот подход позволяет одному экземпляру поддерживать обе версии.

Какой из вышеперечисленных является лучшим подходом? Или есть ли другие стандартные / лучшие альтернативы для достижения этой цели? Предоставляет ли Spring Boot готовую поддержку для таких нужд?

1 Ответ

1 голос
/ 02 апреля 2020

Зависит от того, сколько общего стоит за контроллером. Если версии существенно различаются на всем протяжении до конца, тогда, возможно, легче работать с различными ветвями, но если основные различия заключаются в путях контроллера и входных и выходных объектах, участвующих в этих методах, тогда 2 ветви, вероятно, будут приводить к боли при применении изменений к обоим, и не забывать делать это каждый раз - это такая ситуация, когда рано или поздно будет пропущено важное исправление.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...