WebServices com UniPaaS

Manoel Frederico da Silva / Product Manager & MAGIC Evangelist / Magic Software Brasil 

Neste post, veremos como consumir webServices em soluções UniPaaS.

O UniPaaS possui dois comandos para consumir (chamar) webServices via protocolo SOAP: Invoke WebSvc e Invoke WebSvc Lite. Haverá um capítulo da série “Eu vou Para o UniPaaS” que detalhará o comando “Invoke WebSvc”. Por isso, vamos nos ater agora ao “Invoke WebSvc Lite” apenas.

Inicialmente, é necessário possuir o WSDL do WebService. Pode ser em formato de arquivo, ou a própria URL dele.

Ao selecionar o comando Invoke WebSvc Lite, o assistente será exibido para que seja informado o WSDL do serviço web e selecionado qual método deste serviço deseja executar:

Webservices com uniPaaS_1

Uma vez que tenha sido escolhido o método (usa-se um comando Invoke WebSvc Lite separado para cada método desejado), um serviço do tipo SOAP LITE é registrado no UniPaaS, com o endereço do WebService:

Webservices com uniPaaS_2

Este modelo de vinculação permite que o endereço do serviço seja parametrizável externamente (via MAGIC.INI) sem necessidade de alteração no programa.

Este é o serviço UniPaaS que será associado ao comando:

WebServices com uniPaaS_3

As propriedades Soap Action, Style, Operation e NameSpace são preenchidas pelo assistente automaticamente e a rigor não devem ser alteradas. Estas outras propriedades tem as seguintes funções:

Return Value = Informar um campo UniPaaS para receber o valor de retorno da chamada ao WebService.

Successfully = Informar um campo lógico (boleano) do UniPaaS, que receberá TRUE se a chamada foi bem sucedida, ou FALSE caso contrário.

Fault = Informar um campo texto (string) do UniPaaS, que receberá a descrição do erro ocorrido, se a chamada falhar.

Caso o método chamado aceite argumentos (parâmetros) de entrada, deve-se fazer um ZOOM no item [arguments] e preencher as informações solicitadas:

WebServices com uniPaaS_4

NOTA: esta chamada será síncrona no contexto onde for executado.

O exemplo acima mostra o consumo de um WebService estilo RPC.

Quando o método escolhido for do estilo DOCUMENT:

WebServices com uniPaaS

Significa que o método terá no máximo um argumento, obrigatoriamente um XML, e retorno como resposta também um XML. Neste caso, o assistente UniPaaS cria na pasta “SoapClientModulesSOAPLITE” os esquemas (.xsd) que definem como são os xmls de argumento e de resposta:

Webservices com uniPaaS_6

Muitos são os casos em que é preciso (ou desejável) consumir um serviço web (WebService). Por exemplo, serviços web que permitem envio de SMS. Existem vários, em geral pagos, como este: http://www.human.com.br/tecnologia/sms

Mas existem também alguns gratuitos, como: http://www.naoligo.com.br/

O endereço deste WebService gratuito é:

Serviço: http://www.naoligo.com.br/ws/server.php

WSDL: http://www.naoligo.com.br/ws/server.php?wsdl

Acesse neste link um projeto exemplo (UniPaaS 1.9g ou UniPaaS JET) que permite enviar SMS através de serviço gratuito, usando o comando Invoke WebSvc Lite.

NOTA: Antes de abrir o projeto, é preciso registrar o serviço SOAP LITE (nome: Soap ServerSendSMS Service, endPoint: http://www.naoligo.com.br/ws/server.php) no UniPaaS Studio (menu: Options -> Settings -> Services), ou diretamente no arquivo MAGIC.INI:

[MAGIC_SERVICES]

Soap ServerSendSMS Service =  SOAP LITE,http://www.naoligo.com.br/ws/server.php,,

 

Diferenças Entre “Invoke WebSvc” e “Invoke WebSvc Lite”

Recursos disponíveis no “Invoke Web Svc” que não estão presentes no “Invoke Web Svc Lite”:

  • Acesso a endereços HTTPS
  • Certificados digitais do lado do cliente
  • Anexos nas mensagens
  • Padrão WS-I de transmissão segura

8 comentários

  1. Ola, baixei o aplicativo e realizei o cadastro, porem ao enviar ocorre o seguinte erro, Falha na transmissão: Unexpected return Content-Type: text/html

    1. O serviço deles (www.naoligo.com.br) deve estar retornando uma resposta em formato HTML, ao invés de SOAP.

      Pode ser um problema temporário.

      Se não se resolver, somente entrando em contato com eles e perguntando o que ocorre.

  2. Bom dia Frede,

    Me desculpe.. deu certo sim, este erro deve ser por causa de um proxy em que eu estava conectado.

    Obrigado.

  3. bom dia Frede,

    baixei o exemplo e configurei meu arquivo.ini com o serviço “Soap ServerSendSMS Service = SOAP LITE,http://www.naoligo.com.br/ws/server.php,,”, mas esta me retornando “error reading socket”, será que é por não ter a DLL “mgwsock.dll” na pasta de gateways ? tem alguma dica sobre o erro ?

    Obrigado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *