Вы хотите связать свое приложение с Facebook, чтобы оно могло автоматически создавать публикации, или с Instagram, чтобы вы могли публиковать фотографии с определенными хэштегами?
Вы также можете разместить видео YouTube на своем веб-сайте. Интерфейсы прикладного программирования позволяют выполнять все эти задачи и многое другое (API).
Различные приложения могут «общаться» друг с другом безопасным и стандартизированным образом благодаря таким API, как Instagram API, Facebook API и YouTube API.
Другими словами, программа может брать функции или данные из другой части программного обеспечения и использовать их для улучшения своих собственных функций или взаимодействия с пользователем. Но как приложения могут делать эти запросы, обрабатывать их и отвечать на них так, чтобы другие могли их понять?
Это зависит от того, как был создан API. При обсуждении дизайна API (интерфейс прикладного программирования) обычно сравнивают SOAP и REST, две наиболее известные парадигмы API.
Как только API-интерфейсы SOAP (простой протокол доступа к объектам) стали золотым стандартом для таких фирм, как Oracle, Sun и PayPal, спустя год или около того последовала аналогичная и противоположная реакция на API-интерфейсы REST от Google, Amazon и eBay.
В этом посте мы сравним API-интерфейсы SOAP и API-интерфейсы REST, чтобы вы могли решить, какой из них лучше всего подходит для ваших целей.
Мы начнем с определения API.
Что такое API?
Интерфейс прикладного программирования называется API. API — это, по сути, набор методов и функций, которые позволяют разрабатывать приложения. Они получают доступ к информации и функциям различных программ, сервисов или операционных систем.
Они служат своего рода посредником между различными программными системами. Они позволяют «разговаривать» между двумя не связанными между собой программами.
Возьмем в качестве примера биржевого маклера, который активно занимается торговлей и финансовыми рынками. Коллекция автоматизированных торговые алгоритмы может быть подключен к любимой платформе торгового брокера трейдера через API. Это позволяет вам, трейдеру, выполнять электронные транзакции или просматривать котировки и данные о ценах в режиме реального времени.
Что такое ОТДЫХ?
Настоящие API-интерфейсы «веб-сервисов» включают REST (Representational State Transfer). REST API построены на URI (унифицированных идентификаторах ресурсов, особым видом которых является URL), протоколе HTTP и невероятно совместимом с браузером формате данных JSON.
Протокол SOAP, как мы уже сказали, также может быть использован. REST API может быть легко создавать и расширять, но они также могут быть огромными и сложными — все зависит от того, как они создаются, расширяются и для чего они предназначены.
Ограничение ресурсов, сниженные требования к безопасности, совместимость с браузерным клиентом, возможность обнаружения, работоспособность данных и масштабируемость — вот некоторые причины, по которым вы хотели бы разработать API для поддержки REST — вещи, которые на самом деле применимы к веб-сервисам.
REST предлагает более легкий вариант. SOAP был сложным в использовании и обременительным для многих разработчиков. Например, использование SOAP с JavaScript требует написания большого количества кода для выполнения простых операций, поскольку необходимая структура XML должна создаваться каждый раз.
REST (обычно) использует простой URL-адрес вместо XML-запроса. Хотя бывают редкие обстоятельства, когда вы должны предоставить более подробную информацию, большинство веб-служб RESTful используют только метод URL.
Четыре команды HTTP 1.1 GET, POST, PUT и DELETE могут использоваться REST для выполнения операций. В отличие от SOAP, REST не требует, чтобы ответ был в формате XML.
Доступны веб-службы на основе REST, которые выводят данные в форматах, разделенных командами (CSV), нотации объектов JavaScript (JSON) и форматах Really Simple Syndication (RSS) (RSS).
Цель состоит в том, чтобы вы могли получить нужные вам результаты в удобном для анализа формате на языке, который вы используете для своего приложения.
Особенности
- REST делает упор прежде всего на простоту благодаря протоколам HTTP.
- Интернет лучше всего подходит для REST. Он совместим с браузерами, поскольку в качестве формата данных используется JSON.
- REST известен своей выдающейся масштабируемостью и скоростью.
- Соединения клиент-сервер и архитектура становятся более доступными благодаря REST API. Если это RESTful, он построен с использованием этой модели клиент-сервер с двусторонними обходами между двумя сторонами, передающими полезные данные.
- REST API используют единый стандартный интерфейс. Обеспечение одинакового подключения всех приложений через один и тот же шлюз упрощает взаимодействие приложений с API.
Что такое МЫЛО?
Его собственный протокол, называемый SOAP (простой протокол доступа к объектам), немного сложнее, чем REST, поскольку он определяет больше стандартов, в том числе связанных с безопасностью и доставкой сообщений.
Эти неотъемлемые нормы связаны с небольшими дополнительными накладными расходами. Однако они могут стать решающим фактором для предприятий, которым требуются более широкие возможности обеспечения безопасности, транзакций и ACID (атомарность, непротиворечивость, изоляция, надежность).
Ради этого сравнения важно отметить, что многие преимущества SOAP не часто применимы к приложениям веб-сервисов, что делает их более подходящими для сценариев корпоративного типа.
Более высокие степени безопасности (например, когда мобильное приложение взаимодействует с банком), приложения для обмена сообщениями, требующие надежной связи, взаимодействия с устаревшими системами или соответствия ACID — вот несколько причин, по которым вы хотели бы разработать приложение с использованием SOAP API.
Возможности обмена сообщениями, предлагаемые SOAP, полностью основаны на XML. Старые несовместимые с Интернетом технологии, такие как объектная модель распределенных компонентов (DCOM) и архитектура Common Object Request Broker, были заменены SOAP, когда он был впервые создан Microsoft (CORBA).
Зависимость от двоичной связи приводит к сбою этих систем. В Интернете обмен сообщениями XML, подобный тому, который используется SOAP, работает лучше.
Особенности
- Безопасность SOAP значительно выше. WS-Security — это встроенный стандарт, который предлагает дополнительные возможности безопасности SOAP на уровне предприятия, если это необходимо, в дополнение к поддержке SSL.
- Обоснование успешной/повторной попытки для надежной работы обмена сообщениями. Поскольку в REST отсутствует стандартизированный механизм сообщений, он может повторить попытку только в случае сбоя связи. Даже при использовании промежуточных звеньев SOAP SOAP обеспечивает сквозную надежность благодаря встроенной логике успешной/повторной попытки.
- SOAP уже соответствует стандартам ACID. Определяя, как транзакции могут взаимодействовать с базой данных, соответствие требованиям ACID сводит к минимуму аномалии и обеспечивает согласованность базы данных. Поскольку ACID более осторожна, чем другие модели согласованности данных, она часто используется при управлении конфиденциальными транзакциями, будь то финансовые или иные.
- Программистам это легко понять, поскольку SOAP полностью основан на XML.
- Протокол обмена сообщениями XML является дополнением к протоколу HTTP.
- Связь с одного компьютера на другой компьютер может распространяться через обмен сообщениями SOAP.
- Также может быть реализована клиент-серверная архитектура. Сообщение протокола SOAP может использоваться клиентом для вызова удаленной процедуры, расположенной на стороне сервера.
Отличия REST и SOAP
1. архитектура
API предназначен в первую очередь для отображения определенных компонентов бизнес-логики приложения на сервере. В то время как REST использует URI для той же цели, SOAP использует для этого сервисный интерфейс.
API-интерфейсы REST создаются после данных, тогда как API-интерфейсы SOAP разрабатываются после функциональных возможностей, которые иллюстрирует API. По сравнению с SOAP, который в большей степени ориентирован на функции, REST — это дизайн, в большей степени ориентированный на данные.
2. Кэширование
Данные, помеченные как кэшируемые, могут снова использоваться браузерами, не требуя от них нового запроса к серверу. Экономия времени и усилий является преимуществом этого.
Ответы не будут кэшироваться на уровне HTTP, поскольку запросы SOAP отправляются через запросы POST, которые стандарт HTTP считает неидемпотентными. Если вы хотите использовать кэширование, вы все равно должны создать необходимые методы, поскольку REST API не включают эту реализацию.
3. Ресурсы и пропускная способность
Из-за передачи полезной нагрузки в виде конверта, используемой SOAP, наблюдается небольшое увеличение накладных расходов, что требует дополнительной пропускной способности. Облегченный характер REST является преимуществом в таких ситуациях, поскольку он обычно используется для веб-служб.
4. Безопасность
Желательна WS-безопасность, которую поддерживает SOAP и которая несколько более тщательна, чем SSL на транспортном уровне. Включение мер безопасности на уровне предприятия также идеально подходит.
Сквозное шифрование с использованием SSL поддерживается как SOAP, так и REST, а REST может использовать HTTPS, безопасный вариант протокола HTTP.
5. Обработка полезных нагрузок
Данные, передаваемые через Интернет, называются полезной нагрузкой. Полезная нагрузка, которая считается «тяжелой», требует дополнительных ресурсов. По сравнению с SOAP, в котором используется XML, REST часто использует JSON и HTTP для уменьшения полезной нагрузки.
Специализированная клиентская библиотека со сгенерированным кодом обычно должна использоваться клиентом для доступа к API-интерфейсам SOAP из-за их чрезвычайно строгого коммуникационного контракта.
В результате SOAP предлагает меньший уровень абстракции, чем REST, и более тесно связан с сервером.
Когда использовать REST?
- Создание общедоступных API: API-интерфейсы REST предпочтительны для создания общедоступных веб-сервисов, поскольку они считаются более простыми в использовании и адаптации, чем API-интерфейсы SOAP. Кроме того, SOAP предлагает несколько встроенных мер безопасности, которых нет в REST, хотя эти характеристики не требуются при работе с открытыми данными и сервисами.
- Создание мобильных приложений: REST идеально подходит для создания мобильных приложений, поскольку он небольшой, эффективный, без сохранения состояния и с возможностью кэширования.
- Использование ограниченных ресурсов сервера и пропускной способности: все запросы к REST API должны быть без сохранения состояния, что означает, что каждое взаимодействие является отдельным, и каждый запрос и ответ содержат все данные, необходимые для завершения этого взаимодействия. Сервер не сохраняет записи о предыдущих запросах, так как обрабатывает каждый из них как новый запрос. В результате серверу требуется гораздо меньше памяти и он работает быстрее, поскольку запрос не требует дополнительных действий или извлечения исторических данных.
Когда использовать SOAP?
- Создание частных API, особенно для крупного бизнеса: SOAP идеально подходит для корпоративных приложений, поскольку обеспечивает поток данных в децентрализованной распределенной среде и содержит несколько функций онлайн-безопасности.
- Использование транспортного протокола, отличного от HTTP, в качестве базового уровня: SOAP не зависит от HTTP как основного уровня. В зависимости от вашего приложения вы можете использовать SMTP (простой протокол передачи почты), JMS (служба обмена сообщениями Java) или другой транспортный протокол.
- Работа с операциями с состоянием: в отличие от запросов к REST API, запросы к SOAP API сохраняют состояние, то есть сервер сохраняет информацию о клиенте и использует ее в цепочке запросов или операций. Несмотря на то, что при этом используется больше пропускной способности и ресурсов сервера, это имеет решающее значение для выполнения рутинных или связанных действий, таких как банковские переводы.
Заключение
Сравнение REST и SOAP API делает совершенно очевидным, что REST предпочтительнее SOAP. Тем не менее, бывают ситуации, когда требуется SOAP API. В некоторых случаях веб-службы создаются путем объединения REST и SOAP API.
Таким образом, вариант использования будет определять, какой стиль API будет работать лучше всего.
Оставьте комментарий