Tecnologia > Manual de Instalação > Informações Técnicas > Recursos > Integração > Web services > Catálogo de serviços

Catálogo de serviços

O catálogo de serviços é um recurso que permite que um sistema Senior importe as definições de serviços disponíveis em um provedor, sem que seja necessário cadastrá-los manualmente. Este catálogo é obtido através de um serviço que deve ser implementado sem receber nenhum parâmetro, cujo retorno deve ser um XML, conforme especificado a seguir:

<services>
<service name='servico_1'>
<ports>
<port name='porta_1'>
<help>VmFsb3IgZG8gcGFy4m1ldHJvIHRleHRvLg0KTGluaGEgZG9pcy4=</help>
                    <soapAction>
RXhhbXBsZS5BY3Rpb24=</soapAction>
                    <encodingStyle>aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbmNvZGluZy8=</encodingStyle>
                    <namespace>aHR0cDovL3NlcnZpY2VzLnNlbmlvci5jb20uYnI=</namespace>

<request>
<elements>
 <element name='parametro_1' type='tipo'>
 <help>HmkJBDhjlkj67JHJK=</help>
</element>
 <element name='parametro_2' type='tipo'>
 <help>ASkJBDhjl567JHJK=</help>
</element>
                        </elements>
                    </request>
<response>
<elements>
 <element name='parametro_2' type='tipo'>
 <help>HmkJBDhjlkj67JHJK=</help>
</element>
 <element name='parametro_3' type='tipo'>
 <help>ASkJBDhjl567JHJK=</help>
</element>
                        </elements>
                    </response>
</port>
<port name='porta_2'>
<help>VmFsb3IgZG8gcGFy4m1ldHJvIHRleHRvLg0KTGluaGEgZG9pcy4=</help>
<request>
<elements>
 <element name='parametro_1' type='tipo'>
 <help>HmkJBDhjlkj67JHJK=</help>
</element>
 <element name='parametro_2' type='set'>
 <help>ASkJBDhjl567JHJK=</help>
                                <style>
array</style>
<elements>
 <element name='coluna_1' type='tipo'>
         <help>HmkJBDhjlkj67JHJK=</help>
</element>
 <element name='coluna_2' type='tipo'>
 <help>ASkJBDhjl567JHJK=</help>
</element>
                                </elements>
</element>
                        </elements>
                    </request>
</port>
</ports>
</service>
<service name='servico_2'>
<ports>
<port name='porta_1'>
<help>VmFsb3IgZG8gcGFy4m1ldHJvIHRleHRvLg0KTGluaGEgZG9pcy4=</help>
                    <namespace>aHR0cDovL3NlcnZpY2VzLnNlbmlvci5jb20uYnI=</namespace>

<request>
<elements>
 <element name='parametro_1' type='tipo'>
 <help>HmkJBDhjlkj67JHJK=</help>
                                <namespace>aHR0cDovL3NlcnZpY2VzLnNlbmlvci5jb20uYnI=</namespace>

</element>
                        </elements>
                    </request>
<response>
<elements>
 <element name='parametro_2' type='tipo'>
 <help>mkzxcdjlkj67asdUjuaLJK=</help>
</element>
                        </elements>
                    </response>
</port>
</ports>
</service>
</services>

Nós do XML:


<
services>: Nó principal do XML.
<service>: Representa um serviço disponível no provedor. Podem haver vários no mesmo XML.
<ports>: Nó que contém as portas do serviço. Deve haver apenas um para cada serviço.
<port>: Representa uma porta do serviço. Podem haver várias no mesmo serviço.
<help>: Texto codificado em base64. Para as portas, representa a descrição, e deve ter apenas 1 linha. Para os parâmetros, representa uma explicação sobre o parâmetro, e pode ter várias linhas.
<soapAction
>: Ação que identifica a chamada do serviço, definida da WSDL.
<encodingStyle
>: Estilo de codificação do XML da porta definido na WSDL. Deve ser usado apenas em definições não literais.
<namespace
>: Identificador universal da porta (MethodNamespaceURI), definido da WSDL. Deve ser informado também nos parâmetros quando a chamada exigir tipos qualificados.
<request>: Representa a entrada da porta do serviço. 
<response>: Representa a saída da porta do serviço. 
<elements>: Contém os parâmetros de entrada ou de saída do serviço.
<element>: Representa um parâmetro da porta ou uma coluna de um parâmetro do tipo "set". Quando um parâmetro for do tipo "set", o nó element pode ser composto por outro nó elements.
<style>
: Representa uma informação adicional sobre o tipo do parâmetro. O valor "array" usado em parâmetro do tipo "set" indica que é uma lista ordenada, e que cada ítem deve ser montado dentro de uma tag <value>.

Tipos dos parâmetros:

Nomenclatura

Os nomes de serviços, portas, parâmetros e colunas devem ser formados por caracteres pertencentes ao alfabeto {['A'..'Z'], ['a'..'z'], ['0'..'9'], '_'}, onde o primeiro caracter não pode ser numérico.
Há uma exceção com relação aos nomes dos serviços, onde pode ser usado também o caracter '.' (ponto), desde que ele não sejá nem o primeiro e nem o último caracter do nome.

Há ainda uma restrição quanto aos nomes das colunas com relação aos identificadores usados em operações nos parâmetros do tipo "set" (tabela) dentro de regras LSP. As colunas não podem ter os seguintes nomes:

Este artigo ajudou você?