Existem inúmeras ferramentas que possibilitam a integração com Webservices SOAP. A generalidade das tecnologias de desenvolvimento tem suporte de integração com webservices de forma nativa ou através de integração com outros serviços.
Estas são algumas das ferramentas disponíveis:
- SoapUI (windows, linux, mac)
- Microsoft Visual Studio
- Postman
- Zeep: Python SOAP Client
- JAVA JAX-WS
- PHP
Neste exemplo vamos demonstrar como realizar o teste com o webservice da INCM usando o SoapUI.
{% hint style="info" %} O SoapUI é uma ferramenta open source para testes de API. É uma ferramenta amplamente usada por developers, testers e utilizadores finais, com suporte para a generalidade dos testes funcionais de Serviços Web SOAP e API REST. Para além dos testes funcionais o SoapUI também permite tarefas de análise, testes de segurança, de virtualização e de mocking. {% endhint %}
-
No SoapUI crie um novo projeto através da menu File > New SOAP Project
-
Dê um Nome ao projeto e coloque seguinte URL no campo Initial URL:
https://keys-tst.cryptosaft.incm.pt/service/public?wsdl
-
Pode deixar as restantes opções tal e qual como estão por defeito e clique em OK.
O SoapUI tratará de gerar o serviço e um conjunto de testes de simulação opcionais.
{% hint style="info" %} WSDL ou Web Service Description Language consiste numa linguagem baseada na definição de XML. É usada para descrever as funcionalidades do serviço SOAP podendo comparar-se com um schema de XML, embora para fins distintos. Os ficheiros WSDL são fundamentais para testar e usar corretamente webservices baseados em SOAP. Para saber mais pode visitar esta página. {% endhint %}
Após a criação do projeto, as ligações do serviço serão carregadas no SoapUI.
O serviço de WSDL apresenta duas operações, KeyRequestOperation
e KeyRetrieveOperation
. Ambas com suporte às funções de pedido e de resposta a mensagens.
Os pedidos são apresentados sob a forma de nós das operações. No SoapUI podem ser adicionados quantos pedidos quantos os necessários, mas, por defeito são sempre criados pedidos de exemplo.
Para realizar este pedido, preencha os valores correspondentes a FiscalYear
e VatNumber
e clique em .
A resposta a este pedido desencaderá o envio de uma mensagem para a caixa de correio viaCTT.
O código RetrieveCode
que permite invocar a operação KeyRetrieveOperation
é enviado para a caixa de correio viaCTT do utilizador.
Para invocar o segundo pedido, preencha os valores FiscalYear
, VatNumber
e RetrieveCode
e clique em .
A mensagem deste pedido contem os valores correspondentes à chave de cifra Key
e o vetor de inicialização IV
necessários para realizar o processo de cifra do ficheiro SAF-T (PT) da Contabilidade.