REST и SOAP. Это уже давно стало проблемой. И действительно, это всего лишь два ответа на один и тот же вопрос: как получить доступ к сети услуги.
Однако выбрать одно из другого может быть на удивление сложно.
SOAP (простой протокол доступа к объектам) – это протокол доступа к службам, который существует уже давно. Первоначально разработанный Microsoft, SOAP не так прост, как аббревиатура предложил бы.
REST (передача репрезентативного состояния) — это еще один стандарт, созданный в ответ на недостатки SOAP. Он стремится исправить проблемы с SOAP и предоставить более простой способ доступа к веб-службам.
А как насчет GraphQL?
Конечно же, GraphQL в последнее время произвел огромный фурор, о чем мы уже говорили.
подробно в других статьях. Но это все еще не так стандартизировано, как
REST и SOAP, поэтому в этой статье мы сосредоточимся только на них.
два.
Как SOAP, так и REST имеют проблемы, которые необходимо учитывать при выборе протокола.
Сходства
Хотя SOAP и REST имеют сходство с протоколом HTTP, SOAP
представляет собой более жесткий набор шаблонов обмена сообщениями, чем REST. Правила в SOAP
важны, потому что мы не можем достичь какого-либо уровня стандартизации
без них. REST как архитектурный стиль не требует обработки
и, естественно, более гибкий. И SOAP, и REST полагаются на
устоявшиеся правила, которые все согласились соблюдать в
заинтересованность в обмене информацией.
Краткий обзор SOAP
SOAP использует исключительно XML для предоставления служб обмена сообщениями. Microsoft изначально разработала SOAP, чтобы заменить более старые технологии, которые плохо работают в Интернете, такие как Объектная модель распределенных компонентов (DCOM) и общий объектный запрос Брокерская архитектура (CORBA). Эти технологии терпят неудачу, потому что они полагаются при обмене двоичными сообщениями. Обмен XML-сообщениями, который использует SOAP, работает лучше через Интернет.
После первоначального выпуска Microsoft представила SOAP в Интернете. Engineering Task Force (IETF), где он был стандартизирован. МЫЛО предназначен для поддержки расширения, поэтому он имеет множество других аббревиатур и связанные с ним аббревиатуры, такие как WS-Addressing, WS-Policy, WS-Security, WS-Federation, WS-ReliableMessaging, WS-Координация, WS-AtomicTransaction и WS-RemotePortlets. На самом деле, вы можете найти полный список этих стандартов в стандартах веб-сервисов.
Дело в том, что SOAP обладает высокой расширяемостью, но вы используете только
штук, необходимых для конкретной задачи. Например, при использовании публичного
бесплатный веб-сервис для всех, у вас действительно нет
очень нужен WS-Security.
Сложность зависит от языка программирования
XML, используемый для отправки запросов и получения ответов в SOAP, может стать
чрезвычайно сложный. В некоторых языках программирования вам нужно построить
эти запросы вручную, что становится проблематичным, поскольку SOAP
нетерпим к ошибкам. Однако другие языки могут использовать ярлыки, которые
МЫЛО обеспечивает. Они могут помочь вам сократить усилия, необходимые для создания
запрос и проанализировать ответ. На самом деле при работе с .NET
языки, вы даже не видите XML.
Частью магии является язык описания веб-служб (WSDL).
Это еще один файл, связанный с SOAP. Он обеспечивает
определение того, как работает веб-сервис, чтобы при создании
ссылаясь на него, IDE может полностью автоматизировать процесс. Так что
сложность использования SOAP в значительной степени зависит от языка, на котором вы
использовать.
Встроенная обработка ошибок
Одной из наиболее важных функций SOAP является встроенная обработка ошибок. Если
возникла проблема с вашим запросом, ответ содержит ошибку
информацию, которую вы можете использовать для решения проблемы. Учитывая, что вы можете
не владеете веб-службой, эта особенность чрезвычайно важна;
в противном случае вам оставалось бы гадать, почему что-то не работает.
сообщения об ошибках даже предоставляют стандартизированные коды, так что это возможно
чтобы автоматизировать некоторые задачи обработки ошибок в вашем коде.
Интересная функция SOAP заключается в том, что вам не обязательно обязательно использовать ее с HTTP-транспортом. Существует актуальная спецификация для использования SOAP по протоколу Simple Mail Transfer Protocol. (SMTP), и нет никаких причин, по которым вы не можете использовать его вместо других транспорты. Фактически, разработчики некоторых языков, таких как Python и PHP, делают именно это.
Форма запроса