Soap веб сервис: SOAP API — что это такое за протокол обмена структурированными сообщениями

SOAP API — что это такое за протокол обмена структурированными сообщениями

SOAP — это протокол, по которому веб-сервисы взаимодействуют друг с другом или с клиентами. Название происходит от сокращения Simple Object Access Protocol («простой протокол доступа к объектам»). SOAP API — это веб-сервис, использующий протокол SOAP для обмена сообщениями между серверами и клиентами. При этом сообщения должны быть написаны на языке XML в соответствии со строгими стандартами, иначе сервер вернет ошибку.

Схема взаимодействия веб-приложений по протоколу SOAP

Появление, развитие и актуальность SOAP API

Протокол SOAP был представлен в 1998 году и быстро стал одним из главных стандартов веб-служб, когда Microsoft продвигала платформу .NET, приложения которой взаимодействовали с помощью SOAP API. Сейчас протокол и API уступают по популярности архитектурному стилю REST. Но веб-приложения, использующие SOAP API, все еще пользуются спросом, особенно в банковском и телекоммуникационном секторах.  

Особенности SOAP API

SOAP может использоваться с протоколами SMTP, FTP, HTTP, HTTPS. Чаще всего — с HTTP как с наиболее универсальным: его поддерживают все браузеры и серверы. Корректное SOAP-сообщение состоит из нескольких структурных элементов: Envelope, Header, Body и Fault.

Структура SOAP-сообщения

Envelope («конверт»). Это корневой элемент. Определяет XML-документ как сообщение SOAP с помощью пространства имен xmlns_soap=»http://www.w3.org/2003/05/soap-envelope/». Если в определении будет указан другой адрес, сервер вернет ошибку.

Header («заголовок»). Включает в себя атрибуты сообщения, связанные с конкретным приложением (аутентификация, проведение платежей и так далее). В заголовке могут использоваться три атрибута, которые указывают, как принимающая сторона должна обрабатывать сообщение, — mustUnderstand, actor и encodingStyle. Значение mustUnderstand — 1 или 0 — говорит принимающему приложению о том, следует ли распознавать заголовок в обязательном или опциональном порядке.

Атрибут actor задает конкретную конечную точку для сообщения. Атрибут encodingStyle устанавливает специфическую кодировку для элемента. По умолчанию SOAP-сообщение не имеет определенной кодировки.

Body («тело»). Сообщение, которое передает веб-приложение. Может содержать запрос к серверу или ответ от него. Пример сообщения, которое запрашивает стоимость ноутбука в онлайн-магазине:

<?xml version="1.0"?> <soap:Envelope xmlns_soap="http://www.w3.org/2003/05/soap-envelope/" soap_encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <soap:Body> <m:GetPrice xmlns_m="https://online-shop.ru/prices"> <m:Item>Dell Vostro 3515-5371</m:Item> </m:GetPrice> </soap:Body> </soap:Envelope>

Пример ответа сервера онлайн-магазина:

<?xml version="1.0"?> <soap:Envelope xmlns_soap="http://www.w3.org/2003/05/soap-envelope/" soap_encodingStyle="http://www. w3.org/2003/05/soap-encoding"> <soap:Body> <m:GetPriceResponse xmlns_m="https://online-shop.ru/prices"> <m:Price>37299</m:Price> </m:GetPriceResponse> </soap:Body> </soap:Envelope>

Fault («ошибка»). Опциональный элемент. Передает уведомление об ошибках, если они возникли в ходе обработки сообщения. Может содержать вложенные элементы, которые проясняют причину возникновения ошибки:

  • faultcode — код неполадки;
  • faultstring — «человекопонятное» описание проблемы;
  • faultactor — информация о программном компоненте, который вызвал ошибку;
  • detail — дополнительные сведения о месте возникновения неполадки.

Отличия SOAP от REST

SOAP — протокол, а REST — архитектурный стиль, набор правил по написанию кода. REST был представлен в 2000 году. К этому времени недостатки SOAP были очевидны:

  • объемные сообщения;
  • поддержка только одного формата — XML;
  • схема работы по принципу «один запрос — один ответ»;
  • смена описания веб-сервиса может нарушить работу клиента.

Разработчик стиля REST Рой Филдинг учел недостатки SOAP. REST поддерживает несколько форматов помимо XML: JSON, TXT, CSV, HTML. Вместо создания громоздкой структуры XML-запросов при использовании REST чаще всего можно передать нужный URL. Эти особенности делают стиль REST простым и понятным, а приложения и веб-сервисы, использующие его, отличаются высокой производительностью и легко масштабируются.

Пример простого URL-запроса, возвращающего результаты поиска по ключевому слову DNA («ДНК»), можно посмотреть в международной базе научных статей.

Несмотря на простоту использования, у REST есть ряд недостатков, которые отсутствуют у SOAP:

  • при использовании REST сложнее обеспечить безопасность конфиденциальных данных;
  • трудности с проведением операций, которым необходимо сохранение состояния. Как, например, в случае с корзиной в онлайн-магазине, которая должна сохранять добавленные товары до момента оплаты.

В каких случаях используют SOAP

  • Асинхронная обработка и последующий вызов. Стандарт SOAP 1.2 обеспечивает клиенту гарантированный уровень надежности и безопасности.
  • Формальное средство коммуникации. Если клиент и сервер имеют соглашение о формате обмена, то SOAP 1.2 предоставляет жесткие спецификации для такого типа взаимодействия. Пример — сайт онлайн-покупок, на котором пользователи добавляют товары в корзину перед оплатой. Предположим, что есть веб-служба, которая выполняет окончательный платеж. Может быть достигнуто соглашение, что веб-сервис будет принимать только название товара, цену за единицу и количество. Если сценарий существует, лучше использовать протокол SOAP.
  • Операции с состоянием. Если приложение требует, чтобы состояние сохранялось от одного запроса к другому, то стандарт SOAP 1.2 предоставляет структуру для поддержки таких требований. 

Различия REST и SOAP / Хабр

val6852

Время на прочтение 3 мин

Количество просмотров

558K

Туториал

Перевод

Автор оригинала: Ranga Karanam

Эта вторая статья в серии постов о разработке REST API:

  • Введение в REST API — RESTful веб-сервисы
  • Различия REST и SOAP
  • Разработка REST API — что такое Contract First (контракт в первую очередь)?
  • Разработка REST API — что такое Code First (код в первую очередь)?
  • REST API — Что такое HATEOAS?
  • Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring

В этой статье рассматриваются некоторые аспекты основных различий между REST и SOAP.

Упс… на самом деле, сравнивать их немного похоже на сравнение яблок с апельсинами, поскольку SOAP — это формат протокола, основанный на XML, тогда как REST — это архитектурный подход.



Вы изучите


  • Что такое REST?
  • Что такое SOAP?
  • Чем отличаются REST и SOAP?

REST и SOAP

REST и SOAP на самом деле не сопоставимы. REST — это архитектурный стиль. SOAP — это формат обмена сообщениями. Давайте сравним популярные реализации стилей REST и SOAP.

  • Пример реализации RESTful: JSON через HTTP
  • Пример реализации SOAP: XML поверх SOAP через HTTP

На верхнем уровне SOAP ограничивает структуры ваших сообщений, тогда как REST — это архитектурный подход, ориентированный на использование HTTP в качестве транспортного протокола.

  • Специфика SOAP — это формат обмена данными. С SOAP это всегда SOAP-XML, который представляет собой XML, включающий:
    — Envelope (конверт) – корневой элемент, который определяет сообщение и пространство имен, использованное в документе,
    — Header (заголовок) – содержит атрибуты сообщения, например: информация о безопасности или о сетевой маршрутизации,
    — Body (тело) – содержит сообщение, которым обмениваются приложения,
    — Fault – необязательный элемент, который предоставляет информацию об ошибках, которые произошли при обработке сообщений. И запрос, и ответ должны соответствовать структуре SOAP.
  • Специфика REST — использование HTTP в качестве транспортного протокола. Он подразумевает наилучшее использование функций, предоставляемых HTTP — методы запросов, заголовки запросов, ответы, заголовки ответов и т. д.

Формат обмена сообщениями

  • В SOAP вы используете формат SOAP XML для запросов и ответов.
  • В REST такого фиксированного формата нет. Вы можете обмениваться сообщениями на основе XML, JSON или любого другого удобного формата. JSON является самым популярным среди используемых форматов.

Определения услуг

  • SOAP использует WSDL (Web Services Description Language) — язык описания веб-сервисов и доступа к ним, основанный на языке XML.
  • REST не имеет стандартного языка определения сервиса. Несмотря на то, что WADL был одним из первых предложенных стандартов, он не очень популярен. Более популярно использование Swagger или Open API.

Транспорт

SOAP не накладывает никаких ограничений на тип транспортного протокола. Вы можете использовать либо Web протокол HTTP, либо MQ.

REST подразумевает наилучшее использование транспортного протокола HTTP

Простота реализации

RESTFful веб-сервисы, как правило, гораздо проще реализовать, чем веб-сервисы на основе SOAP.

  • REST обычно использует JSON, который легче анализировать и обрабатывать. В дополнение к этому, REST не требует наличия определения службы для предоставления веб-службы.
  • Однако в случае SOAP вам необходимо определить свой сервис с использованием WSDL, и при обработке и анализе сообщений SOAP-XML возникают большие накладные расходы.

По этому вопросу также имеется авторское видео.

Резюме

В этой статье мы подробно рассмотрели различия между REST и SOAP.

Дополнительное чтение

5 Courses to Learn RESTful Web Services With Java and Spring in 2019

10 API Testing Tips for Beginners (SOAP and REST)

Теги:

  • rest
  • api
  • restful
  • web-services

Хабы:

  • API

Всего голосов 6: ↑4 и ↓2 +2

Комментарии 7

@val6852

Пользователь

404: Страница не найдена

Архитектура приложения

Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы извиняемся за любые неудобства.

Что я могу сделать сейчас?

Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:

Поиск
  • Узнайте последние новости.
  • Наша домашняя страница содержит последнюю информацию об архитектуре приложений.
  • Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, «Архитектура приложений».
  • Если вам нужно, свяжитесь с нами, мы будем рады услышать от вас.

Просмотр по категории

Качество ПО

  • Как создать набор регрессионных тестов

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

  • Как сбалансировать доступ к данным и безопасность в финтех-тестировании

    Использование реальных данных полезно при тестировании программного обеспечения, но команды должны быть осторожны, чтобы не поставить под угрозу безопасность и конфиденциальность. Шесть ядер…

  • Тестовые фреймворки и примеры для модульного тестирования кода Python

    Модульное тестирование является важным аспектом разработки программного обеспечения. Команды могут использовать Python для модульного тестирования, чтобы оптимизировать преимущества Python…

Облачные вычисления

  • Преимущества и ограничения Google Cloud Recommender

    Расходы на облако могут выйти из-под контроля, но такие службы, как Google Cloud Recommender, предоставляют информацию для оптимизации ваших рабочих нагрузок. Но…

  • Zadara выбирает нового генерального директора, поскольку основатель переходит на роль технического директора

    Йорам Новик, второй генеральный директор облачного стартапа Zadara, привносит в эту должность многолетний опыт руководства ИТ и рассказывает о …

  • Как работает маршрутизация на основе задержки в Amazon Route 53

    Если вы рассматриваете Amazon Route 53 как способ уменьшить задержку, вот как работает этот сервис.

TheServerSide.com

  • Как избежать выгорания удаленного инженера-программиста

    Выгорание разработчика программного обеспечения реально. Вот несколько стратегий, которые программисты могут использовать, чтобы этого избежать.

  • JavaScript против TypeScript: в чем разница?

    TypeScript и JavaScript — две дополняющие друг друга технологии, которые лежат в основе как клиентской, так и серверной разработки. Вот…

  • Как применить принцип единой ответственности в Java

    Как работает модель единой ответственности в программе Java? Здесь мы покажем вам, что означает этот принцип SOLID и как …

SOAP vs REST API: что подходит именно вам?

Вечный вопрос: в чем разница между SOAP и REST API и какой из них подходит для моего проекта?

Тот факт, что мы называемся SoapUI, не означает, что мы также не знаем, о чем говорим, когда речь идет об объяснении веб-сервисов RESTful и API.

Итак, если вы ищете ресурс, который даст вам ответ на этот извечный вопрос, вы попали по адресу. Мы также рассмотрим пример кода, а также вызовы и критические анализы каждого варианта.

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

Начните здесь:

SOAP и REST

Термин веб-API обычно относится к обеим сторонам компьютерных систем, взаимодействующих по сети: к службам API, предлагаемым сервером, а также к API, предлагаемому клиентом. например веб-браузер.

Серверная часть веб-API представляет собой программный интерфейс к определенной системе сообщений типа запрос-ответ и обычно называется веб-службой. Существует несколько моделей проектирования веб-сервисов, но наиболее распространены две из них — SOAP и REST.

SOAP предоставляет следующие преимущества по сравнению с REST:

  • Независимость от языка, платформы и транспорта (REST требует использования HTTP)     
  • Хорошо работает в распределенных корпоративных средах (REST предполагает прямое двухточечное взаимодействие)
  • Стандартизированный
  • Обеспечивает значительную расширяемость перед сборкой в ​​форме стандартов WS*
  • Встроенная обработка ошибок
  • Автоматизация при использовании с некоторыми языковыми продуктами

REST по большей части проще в использовании и более гибок. Он имеет следующие преимущества по сравнению с SOAP:

  • Использует простые для понимания стандарты, такие как swagger и Спецификация OpenAPI 3.0
  • Меньшая кривая обучения
  • Эффективно (SOAP использует XML для всех сообщений, REST в основном использует меньшие форматы сообщений, такие как JSON)
  • Быстро (не требует обширной обработки)
  • Ближе к другим веб-технологиям в философии дизайна

Как сказано в одном руководстве по REST API: SOAP подобен конверту, а REST — просто открытке.

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

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

Это всего лишь версия TLDR. Продолжайте читать ниже, чтобы получить более подробную информацию об этих двух форматах. Или ознакомьтесь с инфографикой SOAP vs REST, если вам это больше нравится.

SOAP

SOAP — простой протокол доступа к объектам — вероятно, наиболее известная из двух моделей.

SOAP в значительной степени опирается на XML и вместе со схемами определяет структуру обмена сообщениями со строгой типизацией.

Каждая операция, предоставляемая службой, явно определена вместе со структурой XML запроса и ответа для этой операции.

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

Все это закодировано в WSDL — языке описания веб-сервиса (или определения в более поздних версиях). WSDL часто называют контрактом между поставщиком и потребителем службы. С точки зрения программирования WSDL можно рассматривать как сигнатуру метода для веб-службы.

Отслеживание производительности тестирования по мере масштабирования тестирования API

Сравните: все функции SoapUI Pro

SoapUI с открытым исходным кодом

  • Поддержка тестирования SOAP и REST API.
  • Простое переключение между несколькими средами.
  • Подробная история тестов и отчеты о сравнении тестов.

SoapUI Pro

  • Поддержка тестирования API SOAP, REST и GraphQL.
  • Простое переключение между несколькими средами.
  • Подробная история тестов и отчеты о сравнении тестов.

Попробуйте SoapUI Pro

Пример:

Пример обмена сообщениями выглядит следующим образом.

Запрос от клиента:

ОТПРАВКА http://www.stgregorioschurchdc.org/cgi/websvccal.cgi HTTP/1.1
Accept-Encoding: gzip, deflate
Тип содержимого: текст/xml; кодировка = UTF-8
SOAPAction: "http://www.stgregorioschurchdc.org/Calendar#easter_date"
Длина контента: 479
Хост: www.stgregorioschurchdc.org
Соединение: Keep-Alive
Пользовательский агент: Apache-HttpClient/4.1.1 (java 1.5)

 w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cal="http://www.stgregorioschurchdc.org/Calendar">

<мыло:тело>

<год xsi:type="xsd:short">2014


 

Ответ службы:

HTTP/1.1 200 ОК
Дата: пятница, 22 ноября 2013 г., 21:09:44 по Гринвичу
Сервер: Apache/2.0.52 (Red Hat)
SOAP-сервер: SOAP::Lite/Perl/0.52
Длина содержимого: 566
Подключение: близко
Тип содержимого: текст/xml; кодировка = utf-8



 stgregorioschurchdc.org/Calendar">
20 апреля 2014 г.


 

Из этого примера видно, что сообщение было отправлено через HTTP. SOAP на самом деле не зависит от основного транспортного протокола и может быть отправлен практически по любому протоколу, такому как HTTP, SMTP, TCP или JMS.

Как уже упоминалось, само сообщение SOAP должно быть в формате XML. Как обычно для любого XML-документа, должен быть один корневой элемент: в данном случае Envelope.

Содержит два обязательных элемента: заголовок и тело. Остальные элементы этого сообщения описываются WSDL.

Прилагаемый WSDL, определяющий вышеуказанную службу, выглядит следующим образом (детали не важны, но для полноты картины здесь показан весь документ):


<определения xmlns:tns="http://www.stgregorioschurchdc.org/Calendar"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www. w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
name="Календарь" targetNamespace="http://www.stgregorioschurchdc.org/Calendar">
<имя сообщения="Дата Пасхи">






<имя_операции="easter_date" параметрOrder="год">






<имя_операции="easter_date">

<ввод>


<выход>
 xmlsoap.org/soap/encoding/"/>



<имя службы="Календарь">




 

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

Попробуйте пример проекта SOAP в SoapUI

WSDL

WSDL определяет каждый аспект сообщения SOAP. Он даже может определить, может ли какой-либо элемент или атрибут появляться несколько раз, является ли он обязательным или необязательным, и даже может указать определенный порядок, в котором элементы должны появляться.

Существует распространенное заблуждение, что WSDL является обязательным требованием для службы SOAP.

SOAP был разработан до WSDL, поэтому WSDL является необязательным. Хотя значительно сложнее взаимодействовать с веб-службой, не имеющей WSDL.

С другой стороны, если разработчика просят взаимодействовать с существующей веб-службой SOAP, ему нужно только предоставить WSDL, и есть инструменты, которые выполняют обнаружение служб — генерируют заглушки методов с соответствующими параметрами практически на любом языке из что WSDL.

Многие имеющиеся на рынке инструменты тестирования работают одинаково — тестер предоставляет URL-адрес WSDL, и инструменты генерируют все вызовы с образцами параметров для всех доступных методов.

Критика SOAP

Хотя на первый взгляд WSDL может показаться отличной вещью — он самодокументируемый и содержит почти полную картину всего, что требуется для интеграции со службой, — он также может стать обузой.

Помните, что WSDL — это договор между вами (поставщиком услуги) и каждым из ваших клиентов (потребителей услуги).

Изменения WSDL также означают изменения клиента.

Если вы хотите внести изменения в свой API, даже такие незначительные, как добавление необязательного параметра, WSDL должен измениться. И изменения WSDL также означают изменения клиентов — все ваши потребители должны перекомпилировать свои клиентские приложения для этого нового WSDL.

Это небольшое изменение значительно увеличивает нагрузку на группы разработчиков (по обе стороны коммуникации), а также на группы тестирования. По этой причине WSDL рассматривается как привязка к версии, и большинство провайдеров очень сопротивляются обновлению своего API.

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

Благодаря развитию Интернета все, что имеет значение, работает через HTTP.

Есть новые достижения, но большинству из них препятствуют инфраструктурные маршрутизаторы, отказывающиеся маршрутизировать нестандартный HTTP-трафик. Только подумайте: как давно мир пытается перейти на IPv6?

Определенно нужна более легкая и гибкая модель [чем SOAP].

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

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

Тем не менее, существует потребность в мире, в котором почти у каждого человека на планете есть несколько устройств с малым объемом памяти и малой вычислительной мощностью, постоянно подключенных к нескольким службам, определенно существует потребность в более легкой и гибкой модели. .

REST

REST — передача репрезентативного состояния — быстро становится предпочтительной моделью проектирования общедоступных API (вы можете узнать гораздо больше о REST и о том, как тестировать эти API, в этой электронной книге REST 101: Руководство для начинающих по использованию и тестированию RESTful API). ).

REST означает передачу репрезентативного состояния. Это стиль архитектуры программного обеспечения, основанный на протоколе связи без сохранения состояния, чаще всего HTTP. REST структурирует данные в XML, YAML или любом другом формате, который может быть прочитан машиной, но обычно наиболее широко используется JSON. REST следует парадигме объектно-ориентированного программирования существительного-глагола. REST в значительной степени зависит от данных, по сравнению с SOAP, который сильно зависит от функций. Вы можете видеть, что люди называют их API RESTful или веб-сервисами RESTful. Они означают одно и то же и могут быть взаимозаменяемы.

Не существует стандарта для формата описания служб REST (вы можете импортировать службу REST в SoapUI с помощью файлов WADL). ReadyAPI поддерживает форматы OpenAPI, Swagger и RAML.

Ваши основные HTTP-запросы REST: POST, GET, PUT и DELETE. SoapUI также поддерживает запросы HEAD, OPTIONS, TRACE и PATCH. Давайте рассмотрим пример из Swagger Pet Store API:

  • Отправка запроса GET на /pet/{petId} приведет к получению питомцев с указанным идентификатором из базы данных.
  • Отправка запроса POST в /pet/{petId}/uploadImage добавит новое изображение питомца.
  • Отправка запроса PUT на /pet/{petId} приведет к обновлению атрибутов существующего питомца, идентифицированного указанным идентификатором.
  • Отправка запроса DELETE на /pet/{petId} приведет к удалению указанного питомца.

Итак, вкратце вот что соответствует каждому из этих типов запросов:

ПОЛУЧИТЬ

Чтение или получение данных

ПОЧТ

Добавить новые данные

ПУТ

Обновить уже существующие данные

УДАЛИТЬ

Удалить данные

Чтобы узнать больше о запросах REST и о том, как их выполнять в SoapUI, посетите нашу страницу Работа с запросами REST .

Пример:

Пример обмена сообщениями может содержать всего лишь это — 

Запрос:

ПОЛУЧИТЬ http://www.catechizeme.com/catechisms/catechism_for_young_children/daily_question.js HTTP/1.1
Accept-Encoding: gzip, deflate
Хост: www.catechizeme.com
Соединение: Keep-Alive
Агент пользователя: Apache-HttpClient/4.1.1 (java 1.5) 

Ответ:

HTTP/1.1 200 ОК
Дата: пятница, 22 ноября 2013 г., 22:32:22 по Гринвичу
Сервер: Апач
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.17
ETag: "b8a7ef8b4b282a70d1b64ea5e79072df"
X-время выполнения: 13
Cache-Control: закрытый, max-age=0, обязателен к повторной проверке
Длина контента: 209
Статус: 200
Keep-Alive: таймаут=2, макс=100
Соединение: Keep-Alive
Тип содержимого: js; кодировка = utf-8
{
"link": "катехизисы\/катехизисы_для_молодых_детей\/вопросы\/36",
"Катехизис": "Катехизис для детей раннего возраста",
"a": "Первородный грех.",
"позиция": 36,
«q»: «Как называется та греховная природа, которую мы наследуем от Адама?»
} 

Как и ожидалось, это сообщение было отправлено через HTTP и использовало команду GET.

Далее обратите внимание, что URI, который также должен был быть включен в SOAP-запрос, но там он не имел значения, здесь действительно обретает значение. Тело сообщения значительно меньше, в этом примере его фактически нет.

Служба REST также имеет схему на так называемом WADL — языке описания веб-приложений. WADL для вышеупомянутого вызова будет выглядеть так:


<приложение xmlns="http://wadl.dev.java.net/2009/02">

<база ресурсов="http://www.catechizeme.com">



<имя метода="ПОЛУЧИТЬ">

<запрос/>
<статус ответа="200">
<представление mediaType="json" element="data"/>
<представление mediaType="js; charset=utf-8" element="data"/>




 

WADL использует синтаксис XML для описания метаданных и доступных действий. Его также можно написать таким же строгим, как WSDL: определение типов, необязательных параметров и т. д.

Попробуйте пример проекта REST в SoapUI

WADL

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

Возьмем, к примеру, параметр CATECHISM_NAME в примере выше. WADL только сообщает вам, где в URI находится параметр, и что это должна быть строка.

Однако, если бы вам нужно было подобрать правильные значения для себя, это, вероятно, заняло бы у вас довольно много времени. Обратите внимание, что в WADL можно добавить схему, чтобы можно было определять даже сложные типы переменных, такие как перечисления; однако это еще реже, чем предоставление WADL.

WADL не является обязательным.

Кроме того, WADL является необязательным; на самом деле WADL вообще поставляется довольно редко! Из-за характера службы, чтобы ее можно было использовать, вам почти наверняка понадобится дополнительная документация.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *