Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
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.
Neste tutorial veremos como ativar o serviço de SOAP e gerar o arquivo WSDL, permitindo que outras aplicações utilizem esse serviço.
Pré-
...
requisito
Antes de começar é necessário ter certeza de que se possui um ambiente preparado para a realização do exemplo
...
:
- Projeto do tipo mobile ou web criado
...
- , caso haja dúvidas
...
- de como criar esse tipo de projeto acesse o link criar projeto;
- Saber criar um bloco de programação, caso haja dúvidas acesse o
...
- link bloco de programação;
- Saber utilizar as permissões de segurança da IDE, caso haja dúvidas acesse o link permissão de segurança.
Introdução
Neste tutorial
...
Visão Geral
...
veremos como ativar o serviço de SOAP
...
e gerar o arquivo WSDL, permitindo que outras aplicações utilizem esse serviço. No primeiro projeto, iremos criar um bloco de programação que estará habilitado para disponibilizar o serviço SOAP.
Configurando bloco servidor
A funcionalidade de SOAP está disponível somente em bloco de programação do tipo servidor, então crie um bloco servidor e informe tanto um nome para o arquivo quanto para a função (Figura 1.1).
Image Added
Figura 1.1 - Criando nova função
Propriedades do bloco
Após criar a função, clique na engrenagem Configurações dos tipos de regras (seta da Figura 1.2) para abrir a janela de Propriedades do bloco de programação (1 da Figura 1.2). Nessa janela, habilite a opção Disponibilizar como SOAP para disponibilizar o campo Endereço SOAP (2 da Figura 1.2). Além disso, abra a janela do campo de Segurança (destaque 3 da Figura 1.2) e selecione a opção Todos para os campos Permitir Executar, Permitir Obter e Permitir Editar. Por fim, salve tudo.
Image Added
Figura 1.2 - Habilitando SOAP no bloco
Criando função
Ao voltar para área de edição do bloco, clique sobre a engrenagem do bloco Função (destaque da Figura 1.3) para abrir o popup de adição de parâmetros (1 da Figura 1.3), arrasta dois blocos até entradas (seta da Figura 1.3) e renomeie o campo nome de entrada de um para n1 (sigla para identificar o número 1) e o outro para n2 (sigla para identificar o número 2). Os parâmetros adicionados ficarão disponíveis no menu lateral Variáveis (2 da Figura 1.3).
Image Added
Figura 1.3 - Adicionando parâmetros de entrada à função
Arraste o bloco operações aritméticas, que se encontra na categoria Matemática (1 da Figura 1.4), e o insira no retorno da função (2 da Figura 1.4). Deixa a operação como soma e insira as variáveis n1 e n2 nos espaços vazios do bloco (destaque 2 da Figura 1.4).
Image Added
Figura 1.4 - Adicionando bloco ao retorno da função
Por fim, salve o bloco.
Permissão de acesso ao serviço
As Permissões de segurança afetam diretamente o serviço SOAP, por isso, é preciso liberar o caminho que será gerado para o serviço. Então, no menu do sistema da IDE, acesse Projeto > Permissão de Segurança e clique no botão editar (seta da Figura 2) do permissionável Public. Nisso, será aberta a janela de edição do permissionável, então clique na aba Visões (1 da Figura 2) e no campo de pesquisa, insira o caminho /services/**
(2 da Figura 2) e clique no botão de editar (seta da Figura 2) dessa visão e desmarque a opção permitir DELETE (destaque da Figura 2). Por fim, salve todas as janelas abertas e execute o projeto.
Image Added
Figura 2 - Configurando acesso na permissão de segurança
Obtendo o WSDL
Ao abrir o navegador, adicione após o endereço /services/** para abrir a janela de Service List que exibe todos os serviços SOAP do sistema. O endereço ficará assim: <Domínio>/services/
Nota | ||
---|---|---|
| ||
É imprescindível a utilização da barra final ( |
Image Added
Figura 3.1 - Lista de serviços SOAP
Ao clicar no link do serviço do bloco (no caso do tutorial, o SOAPService), será encaminhado para o endpoint do WSDL (destaque da Figura 3.2).
Image Added
Figura 3.2 - Endpoint do WSDL do bloco criado
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://Bloco" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="BlocoService" targetnamespace="http://Bloco">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://Bloco" attributeformdefault="unqualified" elementformdefault="unqualified" targetnamespace="http://Bloco">
<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="Bloco">
<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="BlocoServiceSoapBinding" type="tns:Bloco">
<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="BlocoService">
<wsdl:port binding="tns:BlocoServiceSoapBinding" name="BlocoPort">
<soap:address location="https://app-28-228-49170.ide.cronapp.io/services/Bloco" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions> |
Consumir o serviço SOAP
Após a requisição do cliente consumidor, o provedor do serviço retornará sua resposta em formato JSON, como podemos ver abaixo. Por isso, será necessário obter o campo "_return" do objeto.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"SomaResponse":{
"_returnSpecified":true,
"_return":"25"
}
} |
Passos
Ativando SOAP no bloco de programação
Para ativar esse serviço num bloco será necessário, primeiramente, criar um bloco do tipo servidor. Caso haja alguma dúvida em relação a como criar um bloco do tipo servidor clique aqui. Nesse exemplo, utilizaremos um bloco para exibir uma notificação contendo a palavra "Olá".
Image Removed
Figura 1 - Bloco(servidor) utilizado no exemplo
Image Removed
Figura 1.2 - Opção de configurar bloco(servidor)
- Após criar o bloco servidor, clique no ícone mostrado na figura 1.2 para abrir as configurações do bloco.
Image RemovedFigura 1.3 - Configurações do bloco(servidor)
- Em seguida, marque a opção "Disponibilizar como SOAP" para ativar o serviço no bloco e depois clique em salvar.
- Ao rodar o projeto, já é possível acessar o bloco disponível no serviço, para isso acesse o link https://<url da aplicação>/services/ para abrir a lista de serviços soap disponíveis (figura 1.4).
Image RemovedFigura 1.4 - Lista de serviços SOAP disponíveis
Opções de segurança
Assim como um WebService REST, as permissões de segurança afetam diretamente o serviço. Um WebService SOAP é trafegado via POST, logo a permissão "Permite Inserir" é a que deve ser usada para ele.
- Acesse novamente as configurações do bloco (figura 1.2).
Image Removed
...