Мыло против. REST: разница между службами веб-API

Содержание:

Anonim

Что такое SOAP?

SOAP - это протокол, который был разработан до REST и появился на свет. Основная идея разработки SOAP заключалась в обеспечении того, чтобы программы, созданные на разных платформах и языках программирования, могли легко обмениваться данными. SOAP - это простой протокол доступа к объектам.

Что такое ОТДЫХ?

REST был разработан специально для работы с такими компонентами, как мультимедийные компоненты, файлы или даже объекты на определенном аппаратном устройстве. Любой веб-сервис, определенный на принципах REST, можно назвать веб-сервисом RestFul. Служба Restful будет использовать обычные HTTP-команды GET, POST, PUT и DELETE для работы с необходимыми компонентами. REST расшифровывается как «Передача состояния представления».

КЛЮЧЕВАЯ РАЗНИЦА

  • SOAP означает простой протокол доступа к объектам, тогда как REST означает передачу репрезентативного состояния.
  • SOAP - это протокол, тогда как REST - это архитектурный шаблон.
  • SOAP использует интерфейсы служб, чтобы предоставить свои функции клиентским приложениям, в то время как REST использует локаторы унифицированных служб для доступа к компонентам на аппаратном устройстве.
  • SOAP требует большей пропускной способности для его использования, тогда как REST не требует большой пропускной способности.
  • SOAP работает только с форматами XML, тогда как REST работает с обычным текстом, XML, HTML и JSON.
  • SOAP не может использовать REST, тогда как REST может использовать SOAP.

Разница между SOAP и REST

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

Ниже приведены основные различия между SOAP и REST.

МЫЛО

ОТДЫХ

  • SOAP - это простой протокол доступа к объектам.
  • REST расшифровывается как передача репрезентативного состояния
  • SOAP - это протокол. SOAP был разработан со спецификацией. Он включает файл WSDL, который содержит необходимую информацию о том, что делает веб-служба, в дополнение к ее местонахождению.
  • REST - это архитектурный стиль, в котором веб-служба может рассматриваться как служба RESTful только в том случае, если она соответствует ограничениям
    1. Клиент-сервер
    2. Без гражданства
    3. Кэшируемый
    4. Многоуровневая система
    5. Единый интерфейс
  • SOAP не может использовать REST, поскольку SOAP - это протокол, а REST - это архитектурный шаблон.
  • REST может использовать SOAP в качестве основного протокола для веб-служб, потому что в конечном итоге это просто архитектурный шаблон.
  • SOAP использует сервисные интерфейсы, чтобы предоставлять свои функции клиентским приложениям. В SOAP файл WSDL предоставляет клиенту необходимую информацию, которая может использоваться, чтобы понять, какие услуги может предложить веб-служба.
  • REST использует локаторы Uniform Service для доступа к компонентам на аппаратном устройстве. Например, если существует объект, который представляет данные сотрудника, размещенные по URL-адресу, как http: //demo.guru99, ниже приведены некоторые из URI, которые могут существовать для доступа к ним.
  • http://demo.guru99.com/Employee

    http://demo.guru99.com/Employee/1

  • SOAP требует большей пропускной способности для его использования. Поскольку сообщения SOAP содержат внутри себя много информации, объем передачи данных с использованием SOAP обычно велик.
int
  • REST не требует большой пропускной способности при отправке запросов на сервер. Сообщения REST в основном состоят из сообщений JSON. Ниже приведен пример сообщения JSON, переданного на веб-сервер. Вы можете видеть, что размер сообщения сравнительно меньше, чем у SOAP.
  • {"city":"Mumbai","state":"Maharastra"}
  • SOAP может работать только с форматом XML. Как видно из сообщений SOAP, все данные передаются в формате XML.
  • REST допускает различные форматы данных, такие как обычный текст, HTML, XML, JSON и т. Д. Но наиболее предпочтительным форматом для передачи данных является JSON.

Когда использовать REST?

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

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

  • Отсутствие состояния - если нет необходимости поддерживать состояние информации от одного запроса к другому, следует использовать REST. Если вам нужен правильный информационный поток, в котором некоторая информация из одного запроса должна перетекать в другой, то для этой цели больше подходит протокол SOAP. Мы можем взять в качестве примера любой сайт онлайн-покупок. Эти сайты обычно требуют, чтобы пользователь сначала добавил в корзину товары, которые необходимо приобрести. Затем все элементы корзины переносятся на страницу оплаты, чтобы завершить покупку. Это пример приложения, которому требуется функция состояния. Состояние товаров в корзине необходимо передать на страницу оплаты для дальнейшей обработки.

  • Кеширование - если необходимо кэшировать много запросов, REST - идеальное решение. Иногда клиенты могут запрашивать один и тот же ресурс несколько раз. Это может увеличить количество запросов, отправляемых на сервер. За счет реализации кеша результаты наиболее частых запросов могут храниться в промежуточном месте. Поэтому всякий раз, когда клиент запрашивает ресурс, он сначала проверяет кеш. Если ресурсы существуют, то они не перейдут на сервер. Таким образом, кеширование может помочь минимизировать количество обращений к веб-серверу.

  • Легкость кодирования - создание сервисов REST и их последующая реализация намного проще, чем SOAP. Поэтому, если для веб-сервисов требуется быстрое решение, тогда REST - это то, что вам нужно.

Когда использовать SOAP?

SOAP следует использовать в следующих случаях

  1. Асинхронная обработка и последующий вызов - если есть требование, чтобы клиенту требовался гарантированный уровень надежности и безопасности, тогда новый стандарт SOAP SOAP 1.2 предоставляет множество дополнительных функций, особенно когда речь идет о безопасности.

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

  3. Операции с отслеживанием состояния - если приложение требует, чтобы состояние поддерживалось от одного запроса к другому, то стандарт SOAP 1.2 предоставляет структуру WS * для поддержки таких требований.

Проблемы в SOAP API

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

Проблемы с SOAP API

  1. Файл WSDL. Одна из основных проблем SOAP API - это сам документ WSDL. Документ WSDL - это то, что сообщает клиенту обо всех операциях, которые могут выполняться веб-службой. Документ WSDL будет содержать всю информацию, такую ​​как типы данных, используемые в сообщениях SOAP, и все операции, доступные через веб-службу. Приведенный ниже фрагмент кода является лишь частью образца файла WSDL.

В соответствии с приведенным выше файлом WSDL у нас есть элемент с именем «TutorialName», который имеет тип String, который является частью элемента TutorialNameRequest.

Теперь предположим, что если файл WSDL должен измениться в соответствии с бизнес-требованиями, а имя TutorialName должно стать TutorialDescription. Это означало бы, что всем клиентам, которые в настоящее время подключаются к этой веб-службе, необходимо будет внести соответствующее изменение в свой код, чтобы учесть изменение в файле WSDL.

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

  1. Размер документа. Другой ключевой проблемой является размер сообщений SOAP, которые передаются от клиента на сервер. Из-за больших сообщений использование SOAP в местах, где пропускная способность является ограничением, может стать большой проблемой.

Проблемы в REST API

  1. Недостаточная безопасность - REST не навязывает никакой безопасности, такой как SOAP. Вот почему REST очень подходит для общедоступных URL-адресов, но когда дело доходит до конфиденциальных данных, передаваемых между клиентом и сервером, REST является худшим механизмом, который можно использовать для веб-служб.
  2. Отсутствие состояния - большинству веб-приложений требуется механизм с отслеживанием состояния. Например, если у вас был сайт покупок, на котором был механизм корзины покупок, необходимо знать количество товаров в корзине до совершения фактической покупки. К сожалению, бремя поддержания этого состояния лежит на клиенте, что только усложняет обслуживание клиентского приложения.

Разница между SOAP, CORBA, DCOM и Java RMI

Методы удаленного доступа, такие как методы RPC (удаленные вызовы процедур), были широко распространены до появления SOAP и REST. Ниже перечислены различные доступные методы удаленного доступа.

  1. CORBA - это была известная как архитектура C ommon O bject R equest B roker A rchitecture. Эта система была создана для того, чтобы приложения, созданные на различных платформах, могли взаимодействовать друг с другом. CORBA была основана на объектно-ориентированной архитектуре, но не обязательно, чтобы вызывающее приложение основывалось на этой архитектуре. Основным недостатком этого метода было то, что его нужно было разрабатывать на отдельном языке, называемом языком определения интерфейсов, и он просто представлял собой дополнительный язык, который разработчики должны были изучить, чтобы использовать систему CORBA.

  2. DCOM - Это D istributed C omponent O ▪ Таблица M Одел, что фирменная технология Microsoft для клиентов доступа удаленных компонентов. Самая большая проблема с этим механизмом заключалась в том, что клиентское приложение должно было освобождать ресурсы, когда они больше не требуются.

    Во-вторых, когда клиент отправляет запрос, клиент должен убедиться, что запрос был упакован или маршалирован правильным образом, чтобы веб-служба могла понять отправленный запрос. Другая проблема заключалась в том, что если клиентское приложение было приложением на основе Java, которое должно было работать с DCOM (технология Microsoft), требовалось дополнительное кодирование, чтобы гарантировать, что приложения, созданные на других языках программирования, могут работать с веб-службами на основе DCOM.

  3. Java RMI - Известный как Java R EMOTE M енит I nvocation, это реализация Java на том , как удаленные объекты можно назвать с помощью удаленных вызовов процедур. Самым большим ограничением этой технологии было то, что Java RMI можно было запускать только на виртуальной машине Java. Это означало, что вызывающее приложение также должно запускаться на платформе Java, чтобы использовать Java RMI.

Основные различия между SOAP и этими методами заключаются в следующем.

  1. Работа через HTTP. Все методы RPC имеют одно большое ограничение: они не работают по протоколу HTTP. Поскольку все приложения в Интернете должны были работать по этому протоколу, это было серьезным препятствием для клиентов, которым приходилось получать доступ к этим веб-службам в стиле RPC.
  2. Работа с нестандартными портами. Поскольку веб-службы в стиле RPC не работали по протоколу HTTP, для них должны были быть открыты отдельные порты, чтобы клиенты могли получить доступ к функциям этих веб-служб.