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 № 1SOAP é 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.