Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 24 Próxima »

O SOAP (Simple Object Access Protocol) é um protocolo utilizado em trocas de informação entre sistemas, ou seja um formato padronizado para o envio de estruturas entre diferentes serviços. Esse padrão permite a comunicação entre plataformas totalmente diferentes, como por exemplo, C++, Java e Ruby sem muito trabalho. No Cronapp é possível utilizar esse serviço de forma low-code nos blocos de programação fazendo com que o bloco criado possa ser utilizado em outra aplicação de forma simples, além de agilizar ainda mais o desenvolvimento dos projetos.

Pré-requisitos

Antes de começar é necessário ter certeza de que se possui um ambiente preparado para a realização do exemplo. Abaixo estão os principais requisitos necessários.

Requisitos:

  1. Projeto do tipo web ou web-mobile criado. Caso haja dúvidas em relação a como criar esse tipo de projeto acesse o link (Criar novo projeto).

Visão Geral

Aqui veremos como ativar o serviço de SOAP nos blocos de programação, dessa forma disponibilizando o bloco para que possa ser utilizado em outra aplicação. Ao fim do tutorial testaremos em outro projeto Cronapp, onde passaremos 2 valores e ele retornará o resultado da soma. (Figura 1)


Figura 1 - Cálculo realizado via serviço SOAP

Passos

Configuração do Bloco de programação

Para ativar esse serviço em um bloco será necessário, primeiramente, criar um bloco do tipo servidor, só é possível ativar essa funcionalidade em blocos de programação do tipo servidor. Caso haja alguma dúvida em relação a como criar um bloco de programação, clique aqui

Nesse exemplo, utilizaremos um bloco de programação para retornar a adição de 2 números via SOAP. Após desenvolver o bloco de programação, abra a janela de propriedades do Bloco de programação e ative a opção Disponibilizar como SOAP (item 1 da Figura 2.1) para que o campo Endereço SOAP (2) possa ser usado.


Figura 2.1 - Opção de configurar bloco(servidor)


Além disso, ative as permissões do bloco de programação no campo Segurança, selecionando a opção todos nos campos Permitir Executar, Permitir Obter e Permitir Inserir. (Figura 2.2)

Figura 2.3 - Permissões de segurança das configurações do bloco de programação servidor

Permissão de acesso ao serviço

As permissões de segurança afetam diretamente o serviço SOAP, por isso, precisamos liberar o caminho que será gerado para o serviço. Acesse a funcionalidade Permissão de Segurança, no menu Projeto e clique no botão Nova Permissão (item 1 da Figura 3.1).

Figura 3.1 - Acesso a funcionalidade Permissão de segurança do Cronapp


Na janela de permissão, altere os campos: Tipo, selecione permitAllCaminho insira "/services/**" (sem aspas), liberando todos os serviços SOAP gerados por esse sistema, e por fim, no  campo Método selecione ALL. (Figura 3.2)

Salve e rode novamente o sistema, caso esteja em execução.


Figura 3.2 - Liberando acesso a tudo dentro de services

Obtendo o WSDL

Rode o projeto e execute-o, abra o navegador e adicione após o endereço gerado "/services/**", ficando assim: https://<url da aplicação>/services/. O sistema irá exibir todos os serviços SOAP do sistema.

Figura 4.1 - Lista de serviços SOAP 


Clique no link do serviço Calculo para ser encaminhado para o endpoint do WSDL: https://app-19-33-45754.ide.cronapp.io/services/Calculo?wsdl (exemplo do tutorial).

XML do serviço SOAP
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://Calculo" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="CalculoService" targetNamespace="http://Calculo">
    <wsdl:types>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://Calculo" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://Calculo">
            <xs:element name="Soma" type="tns:Soma" />
            <xs:element name="SomaResponse" type="tns:SomaResponse" />
            <xs:complexType name="Soma">
                <xs:sequence>
                    <xs:element minOccurs="0" name="arg0" type="xs:string" />
                    <xs:element minOccurs="0" name="arg1" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="SomaResponse">
                <xs:sequence>
                    <xs:element minOccurs="0" name="return" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
            <xs:element name="Exception" type="tns:Exception" />
            <xs:complexType name="Exception">
                <xs:sequence>
                    <xs:element minOccurs="0" name="message" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="Exception">
        <wsdl:part element="tns:Exception" name="Exception"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="Soma">
        <wsdl:part element="tns:Soma" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="SomaResponse">
        <wsdl:part element="tns:SomaResponse" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:portType name="Calculo">
        <wsdl:operation name="Soma">
            <wsdl:input message="tns:Soma" name="Soma"></wsdl:input>
            <wsdl:output message="tns:SomaResponse" name="SomaResponse"></wsdl:output>
            <wsdl:fault message="tns:Exception" name="Exception"></wsdl:fault>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="CalculoServiceSoapBinding" type="tns:Calculo">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="Soma">
            <soap:operation soapAction="" style="document" />
            <wsdl:input name="Soma">
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output name="SomaResponse">
                <soap:body use="literal" />
            </wsdl:output>
            <wsdl:fault name="Exception">
                <soap:fault name="Exception" use="literal" />
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="CalculoService">
        <wsdl:port binding="tns:CalculoServiceSoapBinding" name="CalculoPort">
            <soap:address location="https://app-19-33-45754.ide.cronapp.io/services/Calculo" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>


Testando o Serviço SOAP




Aqui é possível verificar o bloco gerado nesse exemplo, disponível em outra aplicação cronapp por meio do serviço SOAP(Figura 3.2). Vale ressaltar que a categoria recebe o nome do bloco criado no projeto anterior e o bloco leva o nome da função desse mesmo bloco gerado no projeto anterior. Para aprender mais sobre o consumo de web services soap dentro do cronapp, clique aqui.



  • Sem rótulos