Яка різниця між веб-API та веб-сервісом?


136

Чи є різниця між веб-API та веб-службою ? Або вони одні й ті самі?



2
Дивіться також програмісти.SE: Різниця між веб-API та веб-сервісом?
hippietrail

3
API - це опублікований інтерфейс, в той час як сервіс - це реалізація, запущена в бекенді.
Расіка Перера

1
Будь ласка, читайте відповіді обережно. Деякі з них або застарілі, або недійсні
Menuka Ishan

просто додамо ще одне блискуче пояснення - quora.com/What-is-the-difference-bet between-web-services-and-API
Ashish Shetkar

Відповіді:


71

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


7
Веб-сервіси НЕ обов'язково базуються на протоколі SOAP.
horcrux

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) Веб-API - сервіс на основі HTTP і повертає дані JSON або XML за замовчуванням.

2) Він підтримує протокол HTTP.

3) Він може розміщуватися в рамках програми або IIS.

4) Це відкритий код, і ним може користуватися будь-який клієнт, який розуміє JSON або XML.

5) Він має легку архітектуру і хороший для пристроїв, які мають обмежену пропускну здатність, як мобільні пристрої.


7
Веб-сервіс можна розмістити в багатьох місцях,
Ignacio Soler Garcia

3
Практично всі пункти помилкові. Я не можу зрозуміти, як 40 користувачів могли проголосувати.
horcrux

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"
Kulbhushan Singh

Крім того, пункт 3 не є правильним. Це вводить в оману, і це просто допомагає заплутатися в темі "SOAP vs. REST".
horcrux

9

для більш детальної інформації відвідайте це посилання Діаграма


2
чому? З цього зображення видно, що веб-сервіси SOAP не можна використовувати на смартфонах ... чи навіть на настільних комп'ютерах? справді? хтось змушує вас читати JSON замість XML на цих платформах?
AndreaCi

якщо читати xml, це не означає, що базовий сервіс SOAP REST також підтримує розділене значення команд (CSV), нотацію об'єкта JavaScript (JSON) та справді просту синдикацію (RSS).
Adiii

7

Якщо ви хочете, веб-сервіс - це веб-API. Зокрема, Web API зазвичай означає веб-сервіс RESTful (на основі HTTP), а веб-сервіс зазвичай означає SOAP + WSDL (+ HTTP або SMTP або JMS ..).

В основному RESTful веб-сервіси протиставляються веб-сервісам (WSDL, SOAP), але останнім часом було введено термін RESTful Web Services (з великого регістру "W"), що означає RESTful + WSDL + SOAP.

Ознайомтеся з цією діаграмою щодо відмінностей між трьома поняттями: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

Сподіваюся, це допомагає!


4

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


1
Не "абсолютно однакові", якщо зараз є обмеження?
Ojonugwa Jude Ochalifu

0

У контексті ASP.Net Web API - це контролер, базовим класом якого є ApiController і не використовує представлення даних. Веб-сервіс - це клас, похідний від WebService і має автоматичну генерацію WSDL. За замовчуванням це SOAP-api, але ви також можете використовувати JSON, додавши ScriptServiceAttribute .


0

API та веб-сервіс служать засобом комунікації.

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

Усі веб-сервіси - це API, але не всі API - це веб-сервіси.

Веб-сервіс - це лише API, загорнутий у HTTP.


Це тут стаття дає хороші знання про веб - служби та API.


-2

Ну, TMK може бути правильним у світі Microsoft, але у світі всього програмного забезпечення, включаючи Java / Python / тощо, я вважаю, що різниці немає. Вони те саме.


-2

Тут відмінно пояснено різницю між веб-сервісом та веб-API:

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

Текст за посиланням:

Веб-сервіси - це стандарт, визначений W3C, тому доступ до них можна отримати напівавтоматично або автоматично (WSDL / UDDI). Вся справа заснована на XML, тому кожен може її назвати. І кожен аспект послуги дуже чітко визначений. Є стандарт опису параметрів, стандарт проходження параметрів, стандарт відповіді, стандарт виявлення тощо. Ви, ймовірно, можете написати 2000 сторінок книги, які описували б стандарт. Існують навіть деякі "додаткові" стандарти для виконання "стандартних" речей, наприклад автентифікації.

Незважаючи на те, що автоматичне виклик та виявлення ледве працює, оскільки клієнти досить бідні, і у вас немає реальної гарантії того, що будь-яку послугу можна викликати від будь-якого клієнта.

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

Web переходить на Web API / REST. Веб-сервіси насправді не краще, ніж Web API. Дуже складно розвиватись, і вони їдять набагато більше ресурсів (пропускна здатність та оперативна пам’ять) ... і тому, що всі перетворення даних (ЗАПИТАННЯ> XML-> ДАНІ-> ЗАВДАННЯ-> XML-> ОЦІНКАВАННЯ-> КОНВЕРСІЯ>> ДАНІ) дуже повільний.

Напр. У WebAPI ви можете упакувати дані, надсилати їх стисненими та розтисненими + розпаковувати на клієнті. У SOAP ви можете лише стиснути HTML-запит.


-2

Усі WebServices - це API, але всі API не є WebServices, API, який відкривається в Інтернеті, називається веб-сервісами.


Веб-сервіс - це стандарт, визначений W3C, добре документований сервіс для стороннього програмного забезпечення для взаємодії через XML (WSDL / UDDI). Веб-API - це API через HTTP, недостатньо задокументований, має власний стандарт. І API взагалі - це те, що може або не може мати доступ до Інтернету для розмови з іншими програмами, а також може мати інші протоколи, наприклад, API для системних дзвінків, щоб говорити про свій термінал / cmd в ОС.
Імам Букс

-3

Дві речі зрозуміти дуже просто,

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

Примітка: Вся веб-служба - це API, але не всі API - це веб-сервіси


Як локально, так і в Інтернеті
Pavan T
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.