Listar métodos de um webservice (soap) em runtime

25/03/2019

0

Prezados, bom dia.
Alguém saberia dizer como posso listar os métodos (com parâmetros e tipos) de um webservice (soap) em runtime?

Ex. Não tenho o cliente, vou mostrar os métodos disponiveis apenas.
Otto Huckows

Otto Huckows

Responder

Post mais votado

25/03/2019

Olá Otto,

Infelizmente não existe um método pronto para isso,

As aplicações Delphi que consomem SOAP subentendem que você conhece o contrato e os serviços. O máximo que pode ser feito (e na minha opinião isso sim já deveria ter implementando no Delphi) é ler o wsdl carregando-o como xml e buscar pelas tags <wsdl:operation>, por exemplo, o WSDL dos correios mostra:

<wsdl:operation name="getVersao">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Retorna a versão atual do componente</wsdl:documentation>
<wsdl:input message="tns:getVersaoSoapIn"/>
<wsdl:output message="tns:getVersaoSoapOut"/>
</wsdl:operation>

já incluindo o nome do serviço e a Descrição.

Em outras partes do WSDL é possível capturar as informações de parametros de entrada, saída e link do serviço.

Espero ter dado um Norte na sua busca. Um forte abraço e fique com Deus.

Hélio Devmedia

Hélio Devmedia
Responder

Mais Posts

26/03/2019

Otto Huckows


Olá Otto,

Infelizmente não existe um método pronto para isso,

As aplicações Delphi que consomem SOAP subentendem que você conhece o contrato e os serviços. O máximo que pode ser feito (e na minha opinião isso sim já deveria ter implementando no Delphi) é ler o wsdl carregando-o como xml e buscar pelas tags <wsdl:operation>, por exemplo, o WSDL dos correios mostra:

<wsdl:operation name="getVersao">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Retorna a versão atual do componente</wsdl:documentation>
<wsdl:input message="tns:getVersaoSoapIn"/>
<wsdl:output message="tns:getVersaoSoapOut"/>
</wsdl:operation>

já incluindo o nome do serviço e a Descrição.

Em outras partes do WSDL é possível capturar as informações de parametros de entrada, saída e link do serviço.

Espero ter dado um Norte na sua busca. Um forte abraço e fique com Deus.
Responder

26/03/2019

Otto Huckows

Olá Otto,

Infelizmente não existe um método pronto para isso,

As aplicações Delphi que consomem SOAP subentendem que você conhece o contrato e os serviços. O máximo que pode ser feito (e na minha opinião isso sim já deveria ter implementando no Delphi) é ler o wsdl carregando-o como xml e buscar pelas tags <wsdl:operation>, por exemplo, o WSDL dos correios mostra:

<wsdl:operation name="getVersao">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Retorna a versão atual do componente</wsdl:documentation>
<wsdl:input message="tns:getVersaoSoapIn"/>
<wsdl:output message="tns:getVersaoSoapOut"/>
</wsdl:operation>

já incluindo o nome do serviço e a Descrição.

Em outras partes do WSDL é possível capturar as informações de parametros de entrada, saída e link do serviço.

Espero ter dado um Norte na sua busca. Um forte abraço e fique com Deus.


Olá Helio, obg pelo retorno. Ajudou sim, obg.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar