Documentation Web service SOAP

Concept

L'appel d'un webservice se produit par l'usage de la balise WebService dans une page du formulaire.

L'usage de la balise WebService va permettre à l'auteur de renseigner l'url conduisant à un WSDL et de sélectionner une opération que l'on souhaite réalisée.

Seules les webservices SOAP ayant en  requête et en réponse une enveloppe SOAP et utilisant le protocole HTTP peuvent être accédés.

Cet accès doit se produire alors que les données nécessaires au webservice sont présentes dans le contexte de la session du formulaire.

Les données nécessaire à l'accès à un webservice sont celles décrites au sein d'un service FormPublisher.

Un service FormPublisher se décrit à l'aide de trois fichiers :

  • Un fichier <id>.properties

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

    <properties version="1.0">

    <entry key="Method">POST</entry>

    <entry key="Transport">http://ws.cdyne.com/ip2geo/ip2geo.asmx</entry>

    <entry key="Accept-Encoding">gzip,deflate</entry>

    <entry key="Content-Type">text/xml;charset=UTF-8</entry>

    <entry key="SOAPAction">http://ws.cdyne.com/ResolveIP</entry>

    <entry key="User-Agent">Jakarta Commons-HttpClient/3.1</entry>

    <entry key="Host">ws.cdyne.com</entry>

    <entry key="Content-Length"></entry>

    </properties>

  • un fichier <id>.template

    <?xml version="1.0" encoding="UTF-8"?>

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.cdyne.com/">

    <soapenv:Header/>

    <soapenv:Body>

    <ws:ResolveIP>

    <ws:ipAddress><?data $( ipAddress )?></ws:ipAddress>

    <ws:licenseKey><?data $( licenseKey )?></ws:licenseKey>

    </ws:ResolveIP>

    </soapenv:Body>

    </soapenv:Envelope>

  • un fichier <id>.mapping

    <?xml version="1.0" encoding="utf-8"?>

    <soap:Envelope

    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" http://www.w3.org/2001/XMLSchema ">

    <soap:Body>

    <ResolveIPResponse xmlns=" http://ws.cdyne.com/ ">

    <ResolveIPResult>

    <City> {city} </City>

    <StateProvince>C1</StateProvince>

    <Country> {localisation|pays|nom} </Country>

    <Organization />

    <Latitude>48.5833</Latitude>

    <Longitude>7.75</Longitude>

    <AreaCode>0</AreaCode>

    <TimeZone/>

    <HasDaylightSavings>false</HasDaylightSavings>

    <Certainty>90</Certainty>

    <RegionName />

    <CountryCode> {localisation|pays|code} </CountryCode>

    </ResolveIPResult>

    </ResolveIPResponse>

    </soap:Body>

    </soap:Envelope>

Ici les données nécessaires sont  ipAddress et licensekey.

Le service va permettre à partir d'un <id> d'accéder à ces structures (properties, template et mapping) lors des traitements par la partie serveur du formulaire.

Dans le contexte d'un webservice, elles sont générées à l'aide de FormPublisher Studio mais peuvent également être créées manuellement si cela est nécessaire.

Les fichier properties et template sont instanciés avant d'être utilisés.

Autrement dit, les expressions JIL qu'ils pourraient contenir sont exécutées. Les contenus produits à l'issue de cette instanciation sont ensuite exploités  pour appeler le webservice.

Le fichier mapping préfigure un exemple de réponse que le webservice pourrait produire.

Grâce à l'intégration de marqueur dans ce fichier, il est possible de déterminer les éléments de la réponse que l'on souhaite conserver (ils sont exprimés sous la forme {a|b|...}). Dans un premier temps, seuls les éléments non itératifs  sont pris en compte.

Les marqueurs ici présents sont les suivants {city}, {localisation|pays|nom} et {localisation|pays|code}.

L'usage du symbole [] permettra de déterminer une structure itérative par la suite.