SOAP
REST
Что же использовать?
Веб-сервисы в Битрикс
Веб-сервисы в живом производстве
В каждой отрасли бизнеса, каждой компании, как правило, используется целый зоопарк ПО,
например: сайт на 1С-Битрикс, CRM 1С-Битрикс24, учетная система на базе 1С. Одни системы “из
коробки” умеют взаимодействовать с «соседними» продуктами, другие же приходится
дорабатывать. За десятилетия существования веба как отрасли сформировались следующие
практики межсетевого взаимодействия:
- Веб-сервисы.
В данной статье мы поговорим о веб-сервисах. Чем они отличаются от прочих способов и какие
они бывают.
XML-RPC (XML Remote Procedure Call) — протокол удаленного вызова процедур с использованием
XML. Прародитель SOAP. Предельно прост в реализации.
SOAP (Simple Object Access Protocol) — стандартный протокол по версии W3C. Четко структурирован
и задокументирован.
JSON-RPC (JSON Remote Procedure Call) — более современный аналог XML-RPC. Основное отличие —
данные передаются в формате JSON.
Остальные протоколы не так широко распространены. Подробно рассмотрены в статье будут SOAP
и REST.
SOAP
SOAP (Simple Object Access Protocol) — Данные передаются в формате XML.
Преимущества:
- однозначность.
Недостатки:
- сложность реализации;
Любое сообщение в протоколе SOAP — это XML документ, состоящий из следующих элементов
(тегов):
REST
REST (Representational State Transfer) — на самом деле архитектурный стиль, а не протокол. В
отличие от SOAP, REST не подкреплен официальным стандартом. Фактически, он основывается на
соглашениях. Веб-сервис, построенный с учетом всех требований и ограничений архитектурного
стиля, можно назвать RESTful веб-сервисом.
REST не использует конвертацию данных при передаче, данные передаются в исходном виде —
это снижает нагрузку на клиент веб-сервиса, но увеличивает нагрузку на сеть. Управление данными
происходит с помощью методов HTTP:
Преимущества:
- простота реализации;
- отсутствие спецификации;
Что же использовать?
Вопрос “Какой способ реализации использовать?” необходимо рассматривать в контексте
реализуемой системы и ее ограничений. Обычно, SOAP используется в крупных корпоративных
системах со сложной логикой, когда требуются четкие стандарты, подкрепленные временем. XML-
RPC, пожалуй, устарел и не имеет смысла ввиду наличия собрата JSON-RPC. RPC-протоколы подойдут
для совсем простых систем с малым количеством единиц информации и API-методов.