Веб-сервис REST WSDL?

Я внедряю веб-сервис, и я реализовал как версию REST, так и SOAP, чтобы увидеть, какие из них соответствуют моим потребностям. Я решил выбрать REST из-за своей простоты и что, вероятно, буду разрабатывать приложение для iPhone, чтобы его использовать. Мой вопрос очень простой: возможно ли создать WSDL или WADL для моей службы REST и нужно ли это?

Спасибо

Ответ 1

С хорошим сервисом RESTful не нужно генерировать WADL (не говоря уже о гораздо менее подходящем WSDL), потому что он будет описывать самостоятельно. Под "самоописанием" я имею в виду, что он будет предоставлять документы, описывающие все (релевантные) ресурсы, опубликованные службой, и что с использованием стандартного запроса HTTP OPTIONS на любом из них будет представлена ​​основная информация о том, как взаимодействовать. Единственное реальное преимущество использования WADL заключается в том, что он позволяет вызывающему абоненту обнаруживать схемы для сложных документов, которые ему необходимы для работы с опережением времени; REST сам по себе не дает никакой помощи (и некоторые RESTians считают, что делать такие вещи контрпродуктивны, о чем я не уверен, согласен).

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


Для записи я использую Apache CXF для создания RESTful-сервисов (с использованием JAX-RS) и публикации WADL для них.

Ответ 2

W3C сделал официальную рекомендацию для стандарта документации REST на основе WSDL 2.0. Вот цитата из статьи IBM:

Термин веб-службы обычно связан с операцией или основанные на действии сервисы, использующие стандарты SOAP и WS *, такие как WS-Addressing и WS-Security. Термин веб-службы REST обычно относится к ресурсной архитектуре веб-сервисов, которая использует HTTP и XML. Каждый из этих архитектурных стилей веб-сервисов имеет свое место, но до недавнего времени стандарт WSDL не поддерживал одинаково стили. Связывание WSDL 1.1 HTTP было неадекватным для описания связь с HTTP и XML, поэтому не было формально описать веб-службы REST с помощью WSDL. Публикация WSDL 2.0, который был разработан с учетом веб-служб REST, как всемирной паутины Рекомендация Консорциума (W3C) означает, что в настоящее время существует описать веб-службы REST.

Ответ 3

Конечно, это возможно, но для ответа, если это необходимо или нет, вы не предоставили достаточно информации.

Я предлагаю вам взглянуть на сайт developerWorks ibm, в котором представлена ​​интересная статья по теме http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
Надеюсь, что это помогает.


Строго, с WSDL 1.0 вы не можете, но с WSDL2 вы можете, потому что был разработан для принятия такого спроса,

"... WSDL 2.0 в профиле WS-I, который учитывал требования для веб-служб стиля REST. Добавление GET в SOAP 1.2 и несколько дополнения в WSDL 2.0, такие как безопасность работы, способность описывать сообщения, относящиеся к другим веб-службам, и улучшенное связывание HTTP теперь позволяют описывать веб-службы стиля REST.", Arthur Ryman.

Ответ 4

Как сказал @GiuliaDiFederico, "конечно, возможно" (с WSDL2), показывая хорошую ссылку на источник о том, как это сделать. @DonalFellows, с другой стороны, не поощряет использование WSDL...

Я думаю, что использование WSDL - это вопрос

  • УРОВЕНЬ ФОРМАЛИЗАЦИИ: с помощью WSDL вы можете более официально выразить все релевантные детали вашего веб-сервиса.
  • УРОВЕНЬ УСТОЙЧИВОСТИ: если вам нужны долгосрочные контракты и избегайте рисков изменений в среде, где открыт ваш веб-сервис, WSDL помогает поддерживать стабильность.
  • НЕОБХОДИМОСТЬ СТАНДАРТОВ: если клиенты предпочитают веб-сервисы, которые можно назвать стандартными, используйте стандарты. Единственный W3C, и W3C требует XML, SOAP и WSDL.

Ответ 5

RestDoc пытается создать простую структуру документации для ресурсов REST. Браузер доступен через restdoc-renderer.

Он также предлагает аннотации Java, чтобы включить немедленное создание репозитория documetnation. Реализации доступны для Jersey 1.x и JAX-RS 2.0.

Ответ 6

Я думаю, что WSDL не подходит для REST и WADL не требуется. HTTP предоставляет уже то, что WADL может описать в отдельном файле. Например, заголовок "Разрешить" возвращает разрешенный HTTP-метод, а Content Negotiation - для выбора правильного формата.