Respostas:
Um WSDL é um documento XML que descreve um serviço da web. Na verdade, significa o idioma dos serviços da Web.
SOAP é um protocolo baseado em XML que permite trocar informações sobre um protocolo específico (pode ser HTTP ou SMTP, por exemplo) entre aplicativos. Significa Protocolo Simples de Acesso a Objetos e usa XML em seu formato de mensagens para retransmitir as informações.
REST é um estilo arquitetônico de sistemas em rede e significa Representational State Transfer. Não é um padrão em si, mas usa padrões como HTTP, URL, XML etc.
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language."
Isso realmente não explica o que é ...
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".
Exemplo: Em termos simples, se você tiver um serviço web de calculadora.
WSDL: o WSDL informa sobre as funções que você pode implementar ou expor ao cliente. Por exemplo: adicione, exclua, subtraia e assim por diante.
SOAP: onde, ao usar o SOAP, você realmente executa ações como doDelete (), doSubtract (), doAdd (). Então, o SOAP e o WSDL são maçãs e laranjas. Não devemos compará-los. Ambos têm suas próprias funcionalidades diferentes.
Por que usamos SOAP e WSDL: para troca de dados independente da plataforma.
EDIT: Em um exemplo normal da vida cotidiana:
WSDL: Quando vamos a um restaurante, vemos os itens de menu, esses são os WSDLs.
Classes de proxy: Agora, depois de ver os itens de menu, decidimos (processar nossa mente sobre o que pedir): Então, basicamente fazemos classes de proxy com base no documento WSDL.
SOAP: Então, quando realmente pedimos a comida com base no menu: significa que usamos classes proxy para chamar os métodos de serviço que são feitos usando o SOAP. :)
Toda vez que alguém menciona SOAP / WSDL, penso em objetos e classes definidos em xml ...
"Você usa o SOAP da mesma maneira que usaria qualquer classe PHP. No entanto, nesse caso, a classe não existe no sistema de arquivos dos aplicativos locais, mas em um site remoto acessado por http." ... "Se pensarmos em usar um serviço SOAP como apenas outra classe PHP, o documento WSDL é uma lista de todos os métodos e propriedades de classe disponíveis."
..e sempre que alguém fala sobre REST, penso nos comandos do HTTP (métodos de solicitação) como POST, GET e DELETE
SOAP -> SOAP (protocal de acesso a objetos simples) é o protocal no nível do aplicativo criado para a interação máquina a máquina. Protocolo define regras padrão. Todas as partes que estão usando o protocolo específico devem aderir às regras do protocolo. Como o TCP, ele se desenrola na camada de transporte. O protocolo SOAP será entendido pela camada Aplicativo (qualquer aplicativo que suporte SOAP - Axis2, .Net).
A mensagem WSDL -> SOAP consiste em SoapEnevelope-> SoapHeader e SoapBody. Ele não define o que seria o formato da mensagem? Quais são todos os transportes (HTTP, JMS) suportados? sem essas informações, é difícil para qualquer cliente que queira consumir o serviço da Web específico criar a mensagem SOAP. Mesmo se o fizerem, não terão certeza, funcionará o tempo todo. WSDL é o resgate. O WSDL (Web Service description Language) define as operações, formatos de mensagem e detalhes de transporte para a mensagem SOAP.
REST -> REST (transferência de estado representacional) é baseado no transporte. Diferentemente do SOAP, que tem como alvo as ações, o REST se preocupa mais com os recursos. O REST localiza os recursos usando a URL (exemplo -http: // {serverAddress} / employee / employeeNumber / 12345) e depende do protocolo de transporte (com HTTP - GET, POST, PUT, DELETE, ...) para as ações a ser executado nos recursos. O serviço REST localiza o recurso com base na URL e executa a ação com base no verbo de ação de transporte. É mais um estilo arquitetônico e é baseado em convenções.
Você não vai "simplesmente" entender algo complexo.
WSDL é uma linguagem baseada em XML para descrever um serviço da web. Ele descreve as mensagens, operações e informações de transporte de rede usadas pelo serviço. Esses serviços da Web geralmente usam SOAP, mas podem usar outros protocolos.
Um WSDL é legível por um programa e, portanto, pode ser usado para gerar todo ou parte do código do cliente necessário para chamar o serviço da web. É isso que significa chamar os serviços da web baseados em SOAP "de auto-descrição".
O REST não está relacionado ao WSDL.
SOAP significa Simple (sic) Object Access Protocol. O objetivo era ser uma maneira de fazer chamadas de procedimento remoto a objetos remotos enviando XML por HTTP.
WSDL é o idioma da descrição do serviço da web. Uma solicitação que termina em '.wsdl' em um nó de extremidade resultará em uma mensagem XML descrevendo a solicitação e a resposta que um uso pode esperar. Descreve o contrato entre serviço e cliente.
O REST usa HTTP para enviar mensagens aos serviços.
SOAP é uma especificação, REST é um estilo.
A Wikipedia diz que "a linguagem de descrição de serviços da Web é uma linguagem baseada em XML que fornece um modelo para descrever serviços da Web". Dito de outra maneira, o WSDL é para um serviço da web, como o javadoc é para uma biblioteca java.
O mais interessante sobre o WSDL, porém, é que o software pode gerar um cliente e servidor usando o WSDL.
O REST é leve em termos de codificação, muito mais útil para dispositivos leves, ou seja, APIs não rígidas.
O REST é independente do formato. XML, HTML, JSON todas as opções estão disponíveis.
O REST fornece recursos para transferência de mensagens de 2 pontos (não é surpreendente, pois REST significa REpresentational State Transfer), onde a interação WSDL / SOAP é uma interação de mensagens de vários pontos.
O REST não requer uma nova extensão para mensagens XML, onde no WSDL / SOAP este é o caso.
O WSDL / SOAP usa vários protocolos de transporte, o REST depende apenas de HTTP. Portanto, o WSDL / SOAP pode ser usado como uma maneira RESTful, no entanto, solicitações simples podem ser excessivamente complicadas / pesadas.
Uma analogia simples: o REST é como um motoboy entrega sua comida de maneira fácil e rápida. O WSDL / SOAP estendido por XML é mais parecido com a entrega da UPS, coisas mais estruturadas e sérias, mas tem um custo.
Algumas explicações claras (para SOAP e WSDL) também podem ser encontradas aqui.
Um documento WSDL descreve um serviço da web. Ele especifica a localização do serviço e os métodos do serviço usando esses elementos principais: tipos de dados que usam elementos de dados no serviço da web para cada operação descrevem as operações que podem ser executadas e as mensagens envolvidas
SOAP (Simple Object Access Protocol) é um protocolo de mensagens que permite que programas executados em sistemas operacionais diferentes se comuniquem usando http e xml.