Разница между веб-API и веб-сервисом?

Ответы:

86

Веб-сервисы - это стандарт, определенный W3C, поэтому к ним можно получить полуавтоматический или автоматический доступ (WSDL / UDDI). Все это основано на XML, так что каждый может его назвать. И каждый аспект сервиса очень четко определен. Есть стандарт описания параметров, стандарт передачи параметров, стандарт ответа, стандарт обнаружения и т. Д. И т. Д. Вы, вероятно, могли бы написать книгу на 2000 страниц, которая бы описывала стандарт. Есть даже некоторые «дополнительные» стандарты для выполнения «стандартных» вещей, таких как аутентификация.

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

Web API обычно выполняется как HTTP / REST, ничего не определено, вывод может быть, например. JSON / XML, входные данные могут быть XML / JSON / или обычные данные. Нет никаких стандартов для чего-либо => нет автоматического вызова и обнаружения. Вы можете предоставить некоторое описание в текстовом файле или PDF, вы можете вернуть данные в Windows-1250 вместо юникода и т. Д. Для описания стандарта это будет двухстраничная брошюра с некоторой простой информацией, и вы определите все остальное.

Интернет переключается на веб-API / REST. Веб-сервисы действительно не лучше, чем веб-API. Очень сложны в разработке, и они потребляют гораздо больше ресурсов (пропускная способность и оперативная память) ... и из-за всех преобразований данных (REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA) очень медленный.

Например. В WebAPI вы можете упаковать данные, отправить их в сжатом виде и распаковать + распаковать на клиенте. В SOAP вы могли только сжимать HTML-запрос.

Slawek
источник
1
спасибо @Slawek, ты объяснил это лучше ... и спасибо за пример тоже ...
Хариш Куруп
2
На самом деле я слышал, что люди называют как SOAP, так и REST «веб-сервисами». Хотя Web API имеет тенденцию быть REST.
Бен Терли
@ Славек, то, как вы сказали 2000 страниц по сравнению с парой страниц, само по себе объясняет снижение сложности. Хороший способ сказать это просто ..
Jaqen H'ghar
20

Веб-сервис обеспечивает межмашинное взаимодействие по HTTP. Веб-API - это подмножество веб-сервисов, использующих соглашения REST (подведение итогов статьи из Википедии ). Понятия определенно пересекаются. Я полагаю, что в умах большинства людей все еще есть ссылка -> SOAP / XML-RPC, которая может излишне запутывать вопросы.

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

Берин Лорич
источник
Спасибо @Berin Loritsch, да, верно, это вызывает путаницу между API и WS ..
Хариш Куруп
6

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

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

Web API - это концепция, которая абстрагирует средства ее реализации.

С точки зрения непрофессионала ... веб-API для мотора, а WS для BMW N53 .

Аарон Макивер
источник