Как сохранить все версии интерфейса RESTful онлайн? - PullRequest
1 голос
/ 08 апреля 2011

Наш проект Java EE имеет интерфейс RESTful, доступный примерно как http://example.com/rest/.Когда разработка продолжается, мы создаем новые версии этого интерфейса.Чтобы обеспечить обратную совместимость, мы хотели бы предоставить их все онлайн, по разным URL, например:

http://example.com/rest/1.0/
http://example.com/rest/1.1/

Вопрос в том, как их развернуть?Должны ли мы собрать несколько WAR (мы используем Maven)?Но у проекта самая последняя версия в /trunk. Может быть, нам следует упаковать их всех в одну WAR с помощью какого-нибудь плагина Maven, извлекая их из Subversion /tags?Каков ваш опыт?

Ответы [ 4 ]

4 голосов
/ 08 апреля 2011

Когда я бью пальцем по молотку, это больно, что мне делать?Может, прекратить это делать?

Одна из основных целей архитектурного стиля REST - позволить клиенту и серверу развиваться независимо.

Создавая новую версию своего сервиса, вы фактически создаете совершенно новый сервис для замены старого.Делая это, вы отбрасываете то, чего пытается достичь REST.

Может быть, вы намереваетесь просто создать HTTP Api, в этом случае продолжайте.(Но не жалуйтесь, если версионирование причиняет боль: -))

Если вы действительно хотите сделать REST, то осознайте, что если вам нужно создать версии REST API, вы сделали что-то не так.Это может произойти, и если это произойдет, я рекомендую в первую очередь рассмотреть варианты типов носителей.Управление версиями URI является последним средством.

2 голосов
/ 08 апреля 2011

Они все "первоклассные" части вашего приложения.

Не разделяй их. Вы только запутаетесь, пытаясь обновить один, не касаясь другого.

Когда вы вносите изменения, вам, вероятно, придется все равно выпустить.

1 голос
/ 12 апреля 2011

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

Если единственное изменение относится к структурам URL, то вам не нужно создавать версии, просто используйте перенаправления 301-Moved Permanently.

1 голос
/ 08 апреля 2011

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

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