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)