/ / Webservices - SOAP vs. “XML sobre HTTP” - web-services, soap, wsdl

Webservices - SOAP vs. “XML over HTTP” - serviços da Web, soap, wsdl

Tenho uma pergunta geral sobre serviços da Web e espero que você possa me ajudar a esclarecer minha confusão sobre o assunto.

Estou trabalhando com um serviço da web que o host está chamando de "serviço XML sobre HTTP". Eles afirmam que este serviço NÃO é um serviço SOAP, ainda a resposta é uma resposta de envelope SOAP. O serviço é atualmente invocado via postagem de formulário HTML; aqui está o formulário HTML e a resposta:

HTML:

<FORM name=TestForm action=http://intranet/TheWSMethod enctype="text/plain" method="POST">
<TEXTAREA name=Data rows=22 cols=91 type="text" style="position: absolute; left: 78; top: 69; width:752px; height:330px"></TEXTAREA>
<INPUT type=xml>
<INPUT type=submit value="Transmit">
</FORM>

RESPOSTA - Baseado em SOAP?

<?xml version="1.0" encoding="utf-8" ?>
<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode>soap-env:Server</faultcode>
<faultstring>9001</faultstring>
<faultactor>/TheWSMethod</faultactor>
<detail> ... </detail>
</soapenv:Fault>

O anfitrião me disse que há sem WSDL para este processo, que é onde minha confusão começa.

Então, minha pergunta é, se existe / deveriaser um WSDL existente? (ou seja, eles estão brincando comigo ou não entendem o que estou pedindo) ou é possível não ter um WSDL para este tipo de serviço?

Respostas:

14 para resposta № 1

SOAP é apenas uma especialização de XML sobre HTTP e aquela resposta que você postou realmente se parece com uma resposta SOAP (um Falha de SOAP na realidade).

Parece um grande mal-entendido, então não pense que eles estão brincando com você. Tente fazer sua pergunta de uma maneira diferente.

Quanto ao WSDL, se este for realmente um serviço da web 100% SOAP, observe que não é obrigatório ter um WSDL para um serviço da web SOAP.

Um serviço da web é apenas um aplicativo que expõeum conjunto de operações na rede. Para chamar essas operações, você precisa saber qual é seu nome, quais parâmetros eles esperam, quais tipos os parâmetros têm, etc, para que você saiba como construir seu esboço do cliente.

Isso significa que o serviço da web precisa ser documentadoou então você não saberia escrever o código que interage com o serviço web. Esta documentação pode ser um documento do Word ou um PDF e você pode construir o cliente manualmente a partir disso (o que envolve escrever muito código de encanamento para esse seu stub de cliente) OU a documentação pode ser um WSDL arquivo que, ao contrário de um PDF ou documento do Word, pode ser alimentado para uma ferramenta para gerar o código do encanamento stub para você automaticamente.

O WSDL descreve o serviço da Web - e é uma boa prática fornecer um - mas o serviço da Web existe separadamente do WSDL.


1 para resposta № 2

WSDL é principalmente um localizador para o serviço da web. Você pode opcionalmente gerar classes de cliente usando alguma ferramenta para acessar o serviço da web.