Що таке WSDL, SOAP та REST?


153

Що таке WSDL ? Як це пов’язано з SOAP ? Де REST вміщується у всьому цьому?


2
Які "приклади" ви шукаєте? Як я вже говорив, ви можете отримати "простий" приклад не просту річ.
Джон Сондерс

Відповіді:


180

WSDL - це документ XML, який описує веб-службу. Він фактично означає мову опису веб-служб.

SOAP - це протокол на основі XML, який дозволяє обмінюватися інформацією через певний протокол (наприклад, HTTP або SMTP) між програмами. Він розшифровується як Простий протокол доступу до об’єктів і використовує XML для свого формату обміну повідомленнями для передачі інформації.

REST - це архітектурний стиль мережевих систем і розшифровується як представницький державний трансфер. Це не сам стандарт, але він використовує такі стандарти, як HTTP, URL, XML тощо.


4
Я мав намір поставити SMTP або HTTP як приклади протоколів, над якими SOAP можна використовувати. Я не збирався це означати, що HTTP є єдиним протоколом, який можна використовувати (просто використовував його як приклад).
keith_c

7
Представницький стан передачі (REST) ​​- це архітектурний стиль, який визначає обмеження, наприклад, єдиний інтерфейс, який, якщо застосовується до веб-сервісу, індукує бажані властивості, такі як продуктивність, масштабованість та модифікованість, які дозволяють сервісам найкраще працювати в Інтернеті. У стилі REST дані та функціональність вважаються ресурсами та доступ до них здійснюється за допомогою Уніфікованих ідентифікаторів ресурсів (URI). Ресурси діють за допомогою набору простих, чітко визначених операцій. він відповідає архітектурі клієнт / сервер і призначений для використання протоколу зв'язку без стану, як правило, HTTP.
король

4
Чи "D" у WSDL не означає "Опис" замість "Визначення"?
Спаркзз

11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Це насправді не пояснює, що це ...
Ojonugwa Jude Ochalifu

2
@Sparkzz згідно wikipedia:The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition".
Боху

106

Приклад: Простими словами, якщо у вас є веб-служба калькулятора.

WSDL: WSDL розповідає про функції, які ви можете реалізовувати або піддавати клієнту. Наприклад: додавання, видалення, віднімання тощо.

SOAP: Де, використовуючи SOAP, ви фактично виконуєте такі дії, як doDelete (), doSubtract (), doAdd (). Тож SOAP та WSDL - це яблука та апельсини. Ми не повинні їх порівнювати. Вони обидва мають різні функціональні можливості.

Чому ми використовуємо SOAP та WSDL: для незалежного обміну даними платформи.

EDIT: У звичайному щоденному прикладі життя:

WSDL: Коли ми заходимо до ресторану, ми бачимо пункти меню, це WSDL.

Класи проксі-сервісів: Тепер, побачивши пункти меню, ми складаємо наш розум (обробляємо свою думку про те, що замовити): Отже, в основному ми робимо класи проксі на основі документа WSDL.

Мило: Тоді, коли ми фактично замовляємо їжу на основі меню: Значить, ми використовуємо проксі-класи для використання методів обслуговування, що робиться за допомогою SOAP. :)


38

Кожен раз, коли хтось згадує SOAP / WSDL, я думаю про об'єкти та класи, визначені в xml ...

"Ви використовуєте SOAP точно так само, як і будь-який клас PHP. Однак, у цьому випадку клас існує не у файловій системі місцевих додатків, а на віддаленому веб-сайті через http." ... "Якщо ми думаємо використовувати службу SOAP як просто інший клас PHP, тоді документ WSDL - це список усіх доступних методів та властивостей класу."

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

..і всякий раз, коли хтось говорить про REST, я думаю про команди HTTP (методи запиту), як POST, GET та DELETE


19

SOAP -> SOAP (Простий протокол доступу до об'єктів) - протокол рівня додатків, створений для взаємодії машина з машиною. Протокол визначає стандартні правила. Усі сторони, які використовують конкретний протокол, повинні дотримуватися правил протоколу. Як і TCP, він розмотається на транспортному рівні, протокол SOAP буде зрозумілий рівнем програми (будь-яка програма, яка підтримує SOAP - Axis2, .Net).

WSDL -> SOAP-повідомлення складається з SoapEnevelope-> SoapHeader та SoapBody. Це не визначає, яким буде формат повідомлення? які всі транспортні засоби (HTTP, JMS), які він підтримує? без цієї інформації будь-якому клієнту, який хоче скористатися певним веб-сервісом, важко побудувати повідомлення SOAP. Навіть якщо вони будуть, вони не будуть впевнені, вони працюватимуть весь час. WSDL - це порятунок. WSDL (Мова опису веб-служби) визначає операції, формати повідомлень та інформацію про транспорт для SOAP-повідомлення.

REST -> REST (представницький державний трансфер) базується на транспорті. На відміну від SOAP, який спрямований на дії, REST більше стосується ресурсів. REST знаходить ресурси за допомогою URL-адреси (приклад -http: // {serverAddress} / співробітники / службовий номер / 12345) і це залежить від транспортного протоколу (з HTTP - GET, POST, PUT, DELETE, ...) для дій виконується на ресурсах. Служба REST знаходить ресурс на основі URL-адреси та виконує дію на основі дієслова транспортної дії. Це спирається більше на архітектурний стиль та конвенції.


16

Ви не збираєтесь "просто" розуміти щось складне.

WSDL - мова на основі XML для опису веб-сервісу. Він описує повідомлення, операції та інформацію про мережевий транспорт, що використовується сервісом. Ці веб-сервіси зазвичай використовують SOAP, але можуть використовувати й інші протоколи.

WSDL читається програмою, і тому може використовуватися для генерування всього або частини клієнтського коду, необхідного для виклику веб-служби. Ось що означає називати веб-сервіси на базі SOAP "самоописуючими".

REST взагалі не пов’язаний із WSDL.


11

SOAP розшифровується як простий (sic) протокол доступу до об'єктів. Він повинен був бути способом робити віддалені виклики процедур віддаленим об'єктам, надсилаючи XML через HTTP.

WSDL - Мова опису веб-служби. Запит, що закінчується на ".wsdl" до кінцевої точки, призведе до XML-повідомлення, що описує запит та відповідь, які може очікувати використання. Він визначає договір між сервісом та клієнтом.

REST використовує HTTP для надсилання повідомлень службам.

SOAP - це специфіка, REST - це стиль.


2
-1: вибачте, але я не погоджуюся з асоціюванням SOAP з RPC. Що з послугами у стилі повідомлення? Крім того, немає жодного стандарту, який говорить про те, що запит, що закінчується на .wsdl або? Wsdl, генерує WSDL.
Джон Сондерс

4
Ви говорите, що не можете робити RPC за допомогою SOAP? Я знаю, що це може не охопити весь стандарт, але, безумовно, це було оригінальною мотивацією. Що стосується того, чи є URL-адреса WSDL частиною стандарту, я визнаю, що ви мене там є. Зазвичай це так, як я вважаю це зроблено, але я не можу навести нічого в стандарті, який це вимагає.
duffymo

1
Можливо, вас бентежить той факт, що SOAP походить від XML-RPC з думкою, що SOAP спочатку був призначений як RPC. Однак зауважте, що WSDL з самого початку змогла описати послуги в стилі документа, крім послуг у стилі RPC. Якби RPC була оригінальною мотивацією SOAP та WSDL, тоді можна було б очікувати, що послуги в стилі документа не були б відсутними від початкового стандарту.
Джон Сондерс

6

У Вікіпедії сказано, що "Мова опису веб-служб - це мова на основі XML, яка надає модель опису веб-служб". Інакше кажучи, WSDL - це веб-сервіс, як javadoc - бібліотека Java.

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


4

REST - це невелика вага з точки зору кодування, набагато корисніша для пристроїв легкої ваги, тобто не суворих API.

REST не залежить від формату. XML, HTML, JSON усі варіанти доступні.

REST надає можливості для передачі повідомлень у 2 балах (що не дивно, оскільки REST означає перекладне представлення стану), де взаємодія WSDL / SOAP є взаємодією повідомлення з декількома точками.

REST не вимагає нового розширення для XML-повідомлень, де в WSDL / SOAP це так.

WSDL / SOAP використовує кілька транспортних протоколів, REST покладається тільки на HTTP. Таким чином, WSDL / SOAP можна використовувати як ВИПУСК, але прості запити можуть бути надмірно складними / зваженими.

Проста аналогія: REST - це як мотобой доставляє вашу їжу легко і швидко. XML розширив WSDL / SOAP більше схожий на доставку UPS, більш структурований та серйозний матеріал, але поставляється із витратами.



0

Документ WSDL описує веб-сервіс. Він визначає розташування служби та методи сервісу, використовуючи ці основні елементи: типи даних, що використовуються в елементах даних веб-сервісу для кожної операції, описують операції, які можна виконати, і повідомлення залучені

SOAP (Simple Object Access Protocol) - протокол обміну повідомленнями, який дозволяє програмам, що працюють на різних операційних системах, спілкуватися за допомогою http та xml.

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