Мило, відпочинок та творчість людей
SOAP потребує описового документа, як WSDL, оскільки кожен ресурс може використовуватися з різними повідомленнями, в протоколі немає визначення про обмеження можливих імен / повідомлень, якими можна маніпулювати ресурсом.
Наприклад, в SOAP ваша веб-служба, яка дозволяє клієнтам маніпулювати користувачем, може викрити операцію, яка створює користувача у багатьох різних повідомленнях, наприклад:
addUser
createUser
insertUser
Звичайно, це лише кілька зразкових повідомлень, тому що я бачу багато імен смішних методів веб-служб. Там справді творчі люди.
З іншого боку, якщо ви відкриваєте свою базову систему за допомогою веб-api, який дійсно дотримується принципів REST, клієнту просто потрібно знати, що у вас є ресурс з ім'ям Користувачі, оскільки є 99% шансів, що ви можете створити користувача в цьому шлях
POST /Users
І це відбувається для кожної операції, яку ви хочете викрити за допомогою SOAP або веб-програми REST.
Незважаючи на те, що SOAP є протоколом, який обмежує те, що ви можете чи не можете робити, і бути REST стильовою архітектурою, яка залишає багато відкритих моментів того, як робити. Докладаються зусилля для визначення умов щодо викриття та споживання веб-apst REST.
ОПИСАННЯ ВІДПРИЄМСТВА WEB API
У полі, як описати веб-api REST, я можу навести Swagger . Це не спроба створити WSDL, як веб-api REST, але це хороша спроба створити відкритий стандарт для опису веб-apis REST.
Swagger - це специфікація та повна реалізація рамок для опису, виробництва, споживання та візуалізації RESTful веб-служб.
Я дуже використовую Swagger і дуже люблю його, головним чином, тому що інтерфейс Swagger, який дозволяє генерувати приємну консоль і документацію для вашого веб-api.
Існує багато реалізацій Swagger для більшості мов: C #, Java, Python, Ruby тощо.
Якщо ви використовуєте веб-API ASP .NET, є кілька проектів для автоматичного створення специфікації Swagger, як-от Swagger.NET
УЗАГАЛЬНЕННЯ КЛІЄНТІВ НА ВІДПОВІДАЛЬНІСТЬ WEB API
Тому що обмеження REST, як і обмежений набір дієслів (GET, POST, PUT, DELETE тощо), не є настільки складним для створення клієнтської бібліотеки до веб-програми REST.
Такі проекти, як WebApiProxy, можуть з легкістю створювати клієнтів на C # і Javascript.
КОНВЕНЦІЇ ДЛЯ ВЕБ-API REST
Щоб зробити життя нашим розробникам легше, добре визначимося з деякими умовами того, як буде вести себе наш веб-api REST, найкращі зусилля, які я знаю в цій галузі, - це дуже хороша електронна книга Apigee - Web Api Design . Електронна книга - це не спроба створити біблію чи мантру про те, як розробити свій api, а скоріше колекцію конвенцій, що спостерігаються у великих веб-афішах REST, таких як Twitter, Facebook, Linkedin, Google тощо.