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.
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:
- 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. No Ao fim desse tutorial, será possível utilizar o bloco criado em outra aplicação Cronapp e exibir o resultado retornado pelo bloco.do tutorial testaremos em outro projeto Cronapp, onde passaremos 2 valores e ele retornará o resultado da soma. (Figura 1)
Image Modified
Figura 1 - Bloco(servidor) utilizado no exemploCálculo realizado via serviço SOAP
Passos
Ativando SOAP no blocoConfiguraçã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 gerar que o campo Endereço SOAP (2) possa ser usado.
Figura 2.1 - Opção de configurar bloco(servidor)
Ativando permissão de acesso
Assim como um WebService REST,Além disso, ative 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.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)
Nessa etapa, devemos marcar a opção "Disponibilizar como SOAP" para que nosso bloco possa ser disponibilizado como um web services. O campo "Endereço SOAP" exibe o local em que o web service do bloco estará disponível ao ser gerado. Após habilitar a opção clique em "Salvar" e posteriormente salve o bloco para confirmar as alterações.
Image RemovedFigura 2.2 - Acessando as permissões de segurança
Agora é necessário adicionar uma permissão para acessar a lista dos serviços SOAP disponíveis e para acessar a URL necessária para consumir o web service em outra aplicação, essa URL é chamada de WSDL. Para isso vá em projeto e selecione a opção "Permissão de segurança".
Image Modified
Figura 2.3 - Permissões de segurança
Nesse passo vamos adicionar a lista dos serviços soap como público para que possamos acessar a lista e obter o WSDL referente ao nosso bloco. Na aba Permissionáveis clique no editar referente a opção Public para abrir a janela contendo a lista das URL's que não possuem restrição de acesso, após isso vá até a aba visões clique no botão "Novo" para adicionar a lista de services como público.
Image RemovedFigura 2.4 - 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).
Image Added
Figura 3.1 - Acesso a funcionalidade Permissão de segurança do Cronapp
Na janela de permissão, altere os campos: Tipo, selecione permitAll
; Caminho 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.
Image Added
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 "Aqui, no passo 1 vamos digitar /services/** que é a url que contém a lista dos web services soap disponíveis na aplicação. Abaixo é possível escolher o tipo de permissão que gostaríamos de dar ao usuário que acessa essa página, em nosso caso não vamos alterar nada, entretanto caso não queira alguma dessas permissões basta desmarca-la e em seguida clicar em "Salvar" correspondente a página atual e as páginas anteriores. Para confirmar se o bloco foi disponibilizado como SOAP, rode o projeto e acesse o link /services/**", ficando assim: https://<url da aplicação>/services/ para abrir a lista dos serviços SOAP disponíveis em sua aplicação(figura 2.5).. O sistema irá exibir todos os serviços SOAP do sistema.
Image Modified
Figura 24.5 - Bloco gerado disponível na lista de serviços
Image Removed
Figura 2.6 - Xml do bloco(servidor)
Opções de segurança
Image Removed
Figura 3 - Configurações de segurança do bloco(servidor)
Acesse novamente as configurações do bloco (figura 2) e acesse os "..." referentes ao campo segurança. Em seguida, no passo 1, acesse os "..." referentes ao campo permitir inserir, essa propriedade define qual o tipo de permissão é usado para acessar o web service e após isso, no passo 2, selecione o tipo de permissão que se adéqua ao seu projeto. Autenticado permite que só usuários logados possam interagir com o serviço, administradores permite com que apenas usuários com perfil de administrador possam interagir com o serviço, todos permite com que qualquer usuário(inclusive os que não efetuaram o login) possa interagir com o serviço e nenhum faz com que nada consiga interagir com o serviço. Após isso, clique em "Ok" para confirmar o tipo de permissão(passo 2), depois clique em "Ok" para salvar a alteração das permissões da ação(passo 1), clique em "Salvar" para confirmar as configurações atuais e por fim salve o bloco.
Image Removed
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).
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<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.