Listar métodos de um webservice (soap) em runtime
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.
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
Curtidas 0
Melhor post
Hélio Devmedia
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.
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.
GOSTEI 2
Mais Respostas
Otto Huckows
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.
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.
GOSTEI 0
Otto Huckows
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.
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.
GOSTEI 0