Почему у REST нет WSDL, в отличие от SOAP
Для веб-служб SOAP существует спецификация, которой должны следовать все запросы/ответы. Эта спецификация представлена в виде документа WSDL. Однако для веб-служб REST, почему нет такой спецификации или WSDL? Означает ли это, что REST более уязвим для исключений во время выполнения, потому что мы не соблюдаем никаких спецификаций?
Ответы
Ответ 1
REST действительно использует только HTTP-глаголы (GET
, PUT
, POST
, DELETE
,...) на ресурсе. Предполагается, что все операции над ресурсом будут представлены таким образом. POST
используется как уловка для всех, когда вы не можете выразить свою бизнес-логику таким образом, чтобы она соответствовала трем другим. Вот почему WSDL не используется для службы REST, так как у вас только 4 метода на ресурсе.
Но у вас все еще есть возможность описать веб-службу REST с WSDL 2.0.
Ответ 2
Существует множество способов определить RESTful API, как WSDL для SOAP:
Вы можете найти более подробную информацию здесь, в мой пост в блоге.
Ответ 3
SOAP
- это протокол.
REST
- это архитектура.
Во многих ссылках вы увидите, как REST и SOAP упоминаются как конкуренты. Это неправда. SOAP - фактически протокол, а не стиль архитектуры. То, что REST можно сравнить с SOA и RPC. Все три являются примерами стилей веб-сервиса, каждый со своими собственными концептуальный фокус. RPC ориентирован на операции, SOA вокруг сообщений и REST вокруг ресурсов. (ref)
Итак, для SOAP написано стандарты документа WSDL. Но для REST нет стандартного документа, но есть много лучших практик, как http://jsonapi.org