Comment le SAVON Fonctionne


  Share  
|

Une demande de SAVON impliquera de créer et peupler une enveloppe de demande, qui contient toute l'information exigée (comme indiqué par le document de WSDL), transmettant cette enveloppe au serveur d'api, et manipulant la réponse.

Une demande de SAVON contient généralement tous les éléments suivants :

  • Enveloppe de SAVON — avec des inclusions de namespace.

  • Corps de SAVON — définissant probablement les namespaces additionnels.

  • L'action désirée — comment l'action désirée est représentée dépendra de l'api en question. Elle peut être aussi simple qu'un paramètre, ou impliquez les namespaces additionnels.

  • Marque unique — de la clef A de réalisateur assignée par le serveur au demandeur.

  • Paramètres de demande — détaillant la demande étant exécutée.

Avec cette information à l'esprit, une demande de SAVON peut être produite.

< ?xmlversion="1.0" codant = 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 >
< action xsi:type="xsd:string">search</action >
< dactylographiez xsi:type="xsd:string">book</type >
< mot-clé xsi:type="xsd:string">style</keyword >
</SOAP-ENV:Body >
</SOAP-ENV:Envelope >

Il est facile sélectionner les paramètres inclus dans la demande, et bien que la dactylographie variable ne soit pas de grande importance pour le développement de PHP, il vient dans maniable pour des langues plus fortement dactylographiées. L'article absent ici est le point final, fait clairement dans l'exemple de REPOS parce que c'était le URL auquel la demande a été signalée. Des demandes de SAVON, naturellement, sont courues contre URIs indiqué, qui n'ont pas besoin re-d'être indiquées dans la demande elle-même.

La réponse de SAVON ressemblerait à ceci :

< ?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 >
< action xsi:type="xsd:string">search</action >
< dactylographiez xsi:type="xsd:string">book</type >
< mot-clé xsi:type="xsd:string">style</keyword >
</RequestInfo >
< ResponseInfo >
< ResultCount>2</ResultCount >
< article >
< livre vol. 1</Title du titre xsi:type="xsd:string">Style >
< statut xsi:type="xsd:string">Out</Status >
< prises xsi:type="xsd:int">3</Holds >
< CopiesOnHand xsi:type="xsd:int">2</CopiesOnHand >
< auteur xsi:type="xsd:string">Jon Doe</Author >
</article >
< article >
< livre vol. 2</Title du titre xsi:type="xsd:string">Style >
< statut xsi:type="xsd:string">In</Status >
< prises xsi:type="xsd:int">0</Holds >
< CopiesOnHand xsi:type="xsd:int">1</CopiesOnHand >
< auteur xsi:type="xsd:string">Jon Doe</Author >
</article >
</ResponseInfo >
</LibrarySearchResponse >
</SOAP-ENV:Body >
</SOAP-ENV:Envelope >

La réponse de SAVON n'est pas trop différente de la réponse de REPOS montrée plus tôt. En fait, une grande partie de l'espacement nommé pourrait être omis réellement (bien qu'il est rare de voir une réponse de SAVON sans elle), auquel le point, excepté l'encapsulation additionnelle, les deux documents serait très semblable.

Comme vous devriez pouvoir discerner de la réponse montrée, elle se déclare pour être XML 1.0 et emploie UTF-8 pour le codage. L'élément de SOAP-ENV:Envelope est l'élément de racine pour le document, et a des threenamespaces, y compris le namespace de SOAP-ENV. Le corps contient alors l'élément de LibrarySearchResponse entre autres, qui définit également son propre namespace.

Le parent de RequestInfo suit après, et ceci contient les paramètres de demande qui ont produit de la réponse qui suit dessus de là. Renvoyant la demande des paramètres avec la réponse est une occurrence commune dans le SAVON.

En conclusion, la réponse elle-même est retournée. Notez que l'élément de ResultCount se repose en tant qu'enfant direct de ResponseInfo, et les articles de résultat eux-mêmes sont de nouveau stockés sous un élément de répétition, article.

c'est un article supplémentaire par Emanuela Hedrick


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions