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

136

Есть ли разница между веб-API и веб-сервисом ? Или они одно и то же?

sansh
источник
Смотрите также: API против Webservice [закрыто]
hippietrail
2
Смотрите также programmers.SE: Разница между веб-API и веб-сервисом?
hippietrail
3
API - это опубликованный интерфейс, а служба - это реализация, выполняемая в бэкэнде.
Расика Перера
1
Пожалуйста, прочитайте ответы с осторожностью. Некоторые из них или устарели или недействительны
Menuka Ishan
просто добавив еще одно блестящее объяснение - quora.com/What-is-the-difference-between-web-services-and-API
Ашиш Шеткар

Ответы:

71

Веб-сервис обычно предлагает WSDL, из которого вы можете автоматически создавать клиентские заглушки. Веб-сервисы основаны на протоколе SOAP . ASP.NET Web API - это новая платформа Microsoft, которая помогает создавать интерфейсы на основе REST . Ответом может быть либо JSON, либо XML, но невозможно автоматически сгенерировать клиентов, потому что Web API не предлагает описание сервиса, такое как WSDL от Web Services. Так что от ваших требований зависит, какой из методов вы хотите использовать. Возможно, даже WCF лучше соответствует вашим требованиям, просто посмотрите документацию MSDN.

ТМК
источник
7
Веб-сервисы НЕ обязательно основаны на протоколе SOAP.
Крестраж
3
технически устаревший ответ
Арун Радж
4
«ASP.NET Web API» - это платформа Microsoft, а не сам «Web API».
Амир Хоссейн Ахмади
устаревший ответ, перейдите по этой ссылке microsoft-techies.blogspot.com/2014/03/…
Ганеш Каревад
41

Основное различие между веб-сервисами и веб-API

Веб-сервис:

1) Это сервис на основе SOAP, который возвращает данные в формате XML.

2) Поддерживается только протокол HTTP.

3) Это не открытый код, но может использоваться любым клиентом, который понимает XML.

5) Для получения и отправки данных по сети требуется протокол SOAP, поэтому это не легкая архитектура.

Веб-API:

1) Web API является службой на основе HTTP и возвращает данные JSON или XML по умолчанию.

2) Поддерживает протокол HTTP.

3) Он может быть размещен в приложении или IIS.

4) Это открытый исходный код, и он может использоваться любым клиентом, который понимает JSON или XML.

5) Он имеет облегченную архитектуру и хорош для устройств с ограниченной полосой пропускания, таких как мобильные устройства.

Вайбхав Шиледар
источник
7
Веб-сервис может быть размещен во многих местах, не только IIS
Игнасио Солер Гарсия
3
Практически все пункты неверны. Я не могу понять, как 40 пользователей могли проголосовать за.
Крестраж
1
@horcrux Я согласен. Веб-сервис не является обязательным сервисом на основе SOAP.
Райан Шиллингтон
самый запутанный ответ, который я когда-либо видел.
mhrsalehi
23

API против веб-службы

Просто вставил краткое содержание связанной статьи:

Резюме:

  1. Все веб-сервисы являются API-интерфейсами, но все API-интерфейсы не являются веб-сервисами.

  2. Веб-службы могут не выполнять все операции, которые будет выполнять API.

  3. Веб-сервис использует только три стиля использования: SOAP, REST и XML-RPC для связи, тогда как API может использовать любой стиль для связи.

  4. Веб-сервису всегда нужна сеть для работы, в то время как API не нужна сеть для работы.

  5. API облегчает взаимодействие непосредственно с приложением, тогда как веб-сервис является ...

Подробнее: Разница между API и веб-сервисом | Разница между | API против веб-службы http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

Смотрите выше ссылку для полного ответа.

Зия Ур Рахман
источник
10
Но вопрос заключается в разнице между WebAPI и WebService, а не в «API»
Кулбхушан Сингх
Кроме того, пункт 3 не является правильным. Это вводит в заблуждение, и это просто помогает создать путаницу в теме «SOAP vs. REST».
Крестраж
9

для более подробной информации перейдите по этой ссылке схема

Adiii
источник
2
Зачем? из этого изображения кажется, что веб-сервисы SOAP нельзя использовать на смартфонах ... или даже на настольных ПК? действительно? кто-то заставляет вас читать JSON вместо XML на этих платформах?
AndreaCi
если вы читаете xml, это не означает, что базовая служба SOAP REST также поддерживает значение с разделением по командам (CSV), нотацию объектов JavaScript (JSON) и действительно простую синдикацию (RSS).
Adiii
7

Веб-сервис, если вы хотите, это веб-API. В частности, веб-API обычно означает веб-службу RESTful (на основе HTTP), а веб-служба обычно означает SOAP + WSDL (+ HTTP или SMTP или JMS ...).

Как правило, веб-службы RESTful противоположны веб-службам (WSDL, SOAP), но недавно был введен термин веб-службы RESTful (с заглавной буквой W), что означает RESTful + WSDL + SOAP.

Проверьте эту таблицу на предмет различий между тремя концепциями: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

Надеюсь, поможет!

Гейб
источник
4

Веб-сервис абсолютно такой же, как и веб-API, только более ограниченный с точки зрения основного формата данных. Оба используют протокол HTTP и оба позволяют создавать сервисы RESTful. И не забудьте о других протоколах, таких как JSON-RPC - возможно, они подходят лучше.

Винсент
источник
1
Не "абсолютно то же самое", если есть ограничения сейчас, не так ли?
Оджонугва Джуд Очалифу
0

В контексте ASP.Net веб-API - это контроллер, базовый класс которого - ApiController и не использует представления. Веб-сервис - это класс, производный от WebService и имеющий автоматическую генерацию WSDL. По умолчанию это API- интерфейс SOAP, но вы также можете использовать JSON, добавив ScriptServiceAttribute .

jmoffatt
источник
0

API и веб-сервис служат средством общения.

Единственное отличие состоит в том, что веб-сервис облегчает взаимодействие двух компьютеров по сети. API действует как интерфейс между двумя различными приложениями, так что они могут общаться друг с другом . API - это метод, с помощью которого сторонние поставщики могут писать программы, которые легко взаимодействуют с другими программами. Веб-служба имеет интерфейс, который отображается в машинно-обрабатываемом формате, обычно указанном в языке описания веб-служб (WSDL).

Все веб-сервисы являются API-интерфейсами, но не все API-интерфейсы являются веб-сервисами.

Веб-сервис - это просто API, завернутый в HTTP.


Это здесь статья дает хорошие знания о веб - службы и API.

KamalDeep
источник
-2

Ну, TMK может быть прав в мире Microsoft, но в мире всего программного обеспечения, включая Java / Python / и т. Д., Я считаю, что нет никакой разницы. Это одно и то же.

Райан Шиллингтон
источник
-2

Разница между веб-сервисом и веб-API хорошо объяснена здесь:

/software/38691/difference-between-web-api-and-web-service

Текст по ссылке:

Веб-сервисы - это стандарт, определенный 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-запрос.

CSH
источник
-2

Все WebServices - это API, но все API не являются WebServices, API, предоставляемый в Web, называется веб-сервисами.

Паван Т
источник
Веб-сервис - это стандарт, определенный W3C, хорошо документированным сервисом для стороннего программного обеспечения для взаимодействия через XML (WSDL / UDDI). Web API - это API через HTTP, плохо документированный, имеет собственный стандарт. А API в целом - это то, что может или не может иметь доступ в Интернет для связи с другими приложениями, и может иметь другие протоколы, например, API для системных вызовов для связи с вашим терминалом / cmd в ОС.
Имам Букс
-3

Две вещи очень просты для понимания,

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

Примечание. Все веб-службы - это API, но не все API - это веб-службы.

Паван Т
источник
Как локально, так и через Интернет
Pavan T