Что считается неразрывными или обратно совместимыми изменениями в контракте WSDL? - PullRequest
28 голосов
/ 09 января 2012

На этой странице перечислены следующие примеры:

  • Добавление новых операций WSDL в существующий документ WSDL
  • Добавление новых типов схем XML в документ WSDL, которые не содержатся в ранее существующих типах

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

Ответы [ 2 ]

50 голосов
/ 09 января 2012

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

Совместимые изменения

  • добавление нового определения операции WSDL и связанных определений сообщений
  • добавление новогоОпределение типа порта WSDL и связанных с ним определений операций
  • добавление новых привязок WSDL и определений служб
  • добавление нового необязательного элемента XML-схемы или объявления атрибута в определение сообщения
  • , уменьшающее ограничениегранулярность элемента схемы XML или атрибута типа определения сообщения
  • добавление нового подстановочного знака схемы XML к типу определения сообщения
  • добавление нового необязательного утверждения WS-Policy
  • добавление новой альтернативы WS-Policy

Несовместимые изменения

  • переименование существующего определения операции WSDL
  • удаление существующей операции WSDLопределение
  • изменение MEP существующей операции WSDL определение
  • добавление сообщения об ошибке в существующееing Определение операции WSDL
  • добавление нового обязательного элемента схемы XML или объявления атрибута к определению сообщения
  • увеличение степени детализации ограничения элемента схемы XML или объявления атрибута определения сообщения
  • переименование необязательного или обязательного элемента или атрибута XML-схемы в определении сообщения
  • удаление необязательного или обязательного элемента или атрибута XML-схемы или подстановочного знака из определения сообщения
  • с добавлением нового обязательного WS-Утверждение или выражение политики
  • добавление нового игнорируемого выражения WS-Policy (большую часть времени)

По этому конкретному вопросу есть прекрасная книга от Thomas Erl et al;Название - Разработка контрактов веб-сервисов и управление версиями для SOA.

HTH.

Отказ от ответственности: как я уже говорил, это работа, проделанная авторами книги, и я просто делюсь ею.Я также не связан в любом случае;просто понравилась книга :)

3 голосов
/ 09 января 2012

Дополнительные необязательные элементы запроса (minoccurs = 0) также могут быть обратно совместимы - это зависит от реализации службы на стороне хоста. Кроме того, изменение обязательного элемента ответа на необязательный может * также быть обратно совместимым - это зависит от реализации вашего клиента.

Эта область хитрая.

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

Надеюсь, это поможет.

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