Управление версиями веб-служб и обработка на стороне сервера - PullRequest
5 голосов
/ 17 октября 2010

Я пытаюсь разработать стратегию управления версиями веб-сервисов и способы обработки версий с точки зрения SCM.

Мы предоставляем сервисы снизу вверх (JAX-WS) и поэтому имеем меньший контрольнад схемой и не может следовать за версией схемы лучших практик.Мои текущие мысли:

1) Основные изменения (несовместимые с предыдущими версиями):

  • Передано клиенту API через новый URL-адрес службы (управление версиями URL).Например:

http://com.example/v1/MyService

http://com.example/v2/MyService

По моему мнению, это меньше хлопот как для клиента, так и для разработчиков.Клиент просто обновляет URL-адрес службы (обычно в одном месте), а не обновляет все вызовы службы (например, при использовании управления версиями имени службы - MyServiceV1, MyServiceV2, ...).

  • На стороне сервера, это отражается тегированием службы в SVN: MyService- [major]. [minor] Например, MyService-1.0

2) Незначительные изменения (обратно совместимые):

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

  • На стороне сервера ясно, как я использую стратегию выше ([service_name] - [Major]. [minor])

Буду признателен за мнения по поводу стратегии выше и предложения по второстепенному версионированию.

1 Ответ

0 голосов
/ 12 декабря 2013

Для основной версии я думаю, что вы находитесь на правильном пути, хотя я бы не использовал «v», просто число.

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

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

...