Descrição do serviço Web: WSDL
Um arquivo WSDL (Web Service Description Library) está disponível para cada serviço. Esse arquivo XML usa uma metalinguagem para descrever o serviço e especificar os métodos, parâmetros e o servidor disponíveis para contatar a execução do serviço.
Geração de arquivo WSDL
Para gerar um arquivo WSDL, você deve inserir o seguinte URL de um navegador da Web:
https://<server>
/nl/jsp/schemawsdl.jsp?schema=<schema>
Com:
<server>
: o servidor de aplicativos Adobe Campaign (nlserver web)<schema>
: chave de identificação do esquema (namespace:schema_name)
Exemplo do método 'ExecuteQuery' do esquema 'xtk:queryDef'
O arquivo WSDL é gerado pelo URL:
https://localhost/nl/jsp/schemawsdl.jsp?schema=xtk:queryDef
Uma descrição WSDL começa definindo os tipos usados para formar mensagens, associadas em "portas", conectadas a um protocolo por "vinculações" formando serviços da Web.
Tipos
As definições de tipo são baseadas em esquemas XML. Em nosso exemplo, o método "ExecuteQuery" usa uma cadeia de caracteres "s:string" e um documento XML (<s:complextype>
) como parâmetros. O valor de retorno do método ("ExecuteQueryResponse") é um documento XML ( <s:complextype>
).
<types>
<s:schema elementFormDefault="qualified" targetNamespace="urn:xtk:queryDef">
<s:element name="ExecuteQuery">
<s:complexType>
<s:sequence>
<s:element maxOccurs="1" minOccurs="1" name="sessiontoken" type="s:string"/>
<s:element maxOccurs="1" minOccurs="1" name="entity">
<s:complexType>
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ExecuteQueryResponse">
<s:complexType>
<s:sequence>
<s:element maxOccurs="1" minOccurs="1" name="pdomOutput">
<s:complexType mixed="true">
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
Mensagens
O <message>
descreve os nomes e tipos de um conjunto de campos a serem enviados. O método usa duas mensagens para transmitir como um parâmetro ("ExecuteQueryIn") e o valor de retorno ("ExecuteQueryOut").
<message name="ExecuteQueryIn">
<part element="tns:ExecuteQuery" name="parameters"/>
</message>
<message name="ExecuteQueryOut">
<part element="tns:ExecuteQueryResponse" name="parameters"/>
</message>
PortType
O <porttype>
associa as mensagens na operação "ExecuteQuery" disparada pela consulta ("input") gerando uma resposta ("output").
<portType name="queryDefMethodsSoap">
<operation name="ExecuteQuery">
<input message="tns:ExecuteQueryIn"/>
<output message="tns:ExecuteQueryOut"/>
</operation>
</portType>
Vinculação
A parte <binding>
especifica o protocolo de comunicação SOAP ( <soap:binding>
), o transporte de dados em HTTP (valor do atributo "transport") e o formato dos dados para a operação "ExecuteQuery". O corpo do envelope SOAP contém os segmentos de mensagem diretamente sem transformação.
<binding name="queryDefMethodsSoap" type="tns:queryDefMethodsSoap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ExecuteQuery">
<soap:operation soapAction="xtk:queryDef#ExecuteQuery" style="document"/>
<input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:xtk:queryDef" use="literal"/>
</input>
<output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:xtk:queryDef" use="literal"/>
</output>
</operation>
</binding>
Serviço
A parte <service>
descreve o serviço "XtkQueryDef" com seu URI na URL do servidor de aplicativos do Adobe Campaign.
<service name="XtkQueryDef">
<port binding="tns:queryDefMethodsSoap" name="queryDefMethodsSoap">
<soap:address location="https://localhost/nl/jsp/soaprouter.jsp"/>
</port>
</service>
Conectividade
O Adobe Campaign aumentou a segurança para mecanismos de autenticação ao introduzir zonas de segurança e configurações de gerenciamento de sessão.
Há dois modos de autenticação disponíveis:
- por meio de uma chamada para o método de logon(). Esse modo gera um token de sessão e um token de segurança. É o modo mais seguro e, portanto, o mais recomendado.
ou
- por meio do logon do Adobe Campaign + senha que cria um token de sessão. O token de sessão expira automaticamente após um período definido. Este modo não é recomendado e requer a redução das configurações de segurança do aplicativo para algumas configurações de zona (allowUserPassword="true" e sessionTokenOnly="true").
Características do token de sessão
O token de sessão tem as seguintes características:
-
um ciclo de vida de X horas (o ciclo de vida é configurável no arquivo 'serverConf.xml', o período padrão é de 24 horas)
-
uma construção aleatória (ela não contém mais o logon e a senha do usuário)
-
quando acessado pela Web:
- o token de sessão se torna um token permanente e não é destruído depois que o navegador é fechado
- ele é colocado em um cookie HTTP-ONLY (os cookies devem ser ativados para operadores)