Um pedido do SABÃO envolverá criar e povoar um envelope do pedido, que contenha toda a informação requerida (como especificado pelo original de WSDL), transmitindo esse envelope ao usuário do API, e segurando a resposta.
|
|
Um pedido do SABÃO contem geralmente todos os seguintes elementos:
Envelope do SABÃO — com inclusions do namespace.
Corpo do SABÃO — que define possivelmente namespaces adicionais.
A ação desejada — como a ação desejada é representada dependerá do API na pergunta. Pode ser tão simples quanto um parâmetro, ou envolva namespaces adicionais.
Identificador original — da chave A do colaborador atribuído pelo usuário ao requestor.
Parâmetros do pedido — que detalham o pedido que está sendo executado.
Com essa informação na mente, um pedido do SABÃO pode ser gerado.
<?xmlversion="1.0" que codifica = standalone="no" UTF-8
""? >
< SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
< SOAP-ENV:Body >
< devkey xsi:type="xsd:int">123</devkey >
< ação xsi:type="xsd:string">search</action >
< datilografe xsi:type="xsd:string">book</type >
< keyword xsi:type="xsd:string">style</keyword >
</SOAP-ENV:Body >
</SOAP-ENV:Envelope >
Os parâmetros incluídos no pedido são fáceis de escolher para fora, e embora datilografar variável não é da importância grande para o desenvolvimento de PHP, vem em acessível para línguas mais fortemente datilografadas. O artigo faltante aqui é o endpoint, feito claramente no exemplo do DESCANSO porque era o URL a que o pedido foi afixado. Os pedidos do SABÃO, naturalmente, são funcionados de encontro a URIs especificado, que não necessitam re-ser especificados dentro do pedido próprio.
A resposta do SABÃO olharia como esta:
<?xmlversion='1.0 ' encoding='UTF-8 '? >
< SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema" >
< SOAP-ENV:Body >
<
LibrarySearchResponsexmlns="http://library.example.com/api/ns" >
< RequestInfo >
< devkey xsi:type = "xsd:string">123</devkey >
< ação xsi:type="xsd:string">search</action >
< datilografe xsi:type="xsd:string">book</type >
< keyword xsi:type="xsd:string">style</keyword >
</RequestInfo >
< ResponseInfo >
< ResultCount>2</ResultCount >
< artigo >
< livro Vol 1</Title do título
xsi:type="xsd:string">Style >
< status xsi:type="xsd:string">Out</Status >
< preensões xsi:type="xsd:int">3</Holds >
< CopiesOnHand xsi:type="xsd:int">2</CopiesOnHand >
< autor xsi:type="xsd:string">Jon Doe</Author >
</artigo >
< artigo >
< livro Vol 2</Title do título
xsi:type="xsd:string">Style >
< status xsi:type="xsd:string">In</Status >
< preensões xsi:type="xsd:int">0</Holds >
< CopiesOnHand xsi:type="xsd:int">1</CopiesOnHand >
< autor xsi:type="xsd:string">Jon Doe</Author >
</artigo >
</ResponseInfo >
</LibrarySearchResponse >
</SOAP-ENV:Body >
</SOAP-ENV:Envelope >
A resposta do SABÃO não é demasiado diferente da resposta do DESCANSO mostrada mais cedo. No fato, muito do afastamento conhecido poderia realmente ser omitido (embora é raro ver uma resposta do SABÃO sem ela), em que o ponto, à excecpção do encapsulation adicional, os dois originais seria muito similar.
Como você deve poder discernir da resposta mostrada, declara-se para ser XML 1.0 e usa-se UTF-8 codificando. O elemento de SOAP-ENV:Envelope é o elemento da raiz para o original, e tem threenamespaces, including o namespace de SOAP-ENV. O corpo contem então o elemento de LibrarySearchResponse entre outras coisas, que define também seu próprio namespace.
O pai de RequestInfo segue após, e este contem os parâmetros do pedido que geraram a resposta que segue sobre de lá. Que retorna o pedido parâmetros com a resposta é uma ocorrência comum no SABÃO.
Finalmente, a resposta própria é retornada. Observe que o elemento de ResultCount se senta como uma criança direta de ResponseInfo, e os artigos eles mesmos do resultado são armazenados outra vez sob um elemento repetindo, artigo.
Online: 852 users browsing the articles directory
|
|