L'interface SOAP

Le serveur Spectrum™ Technology Platform donne accès aux services via SOAP en mode document/littéral. Les services Web document/littéral sont au format conforme à WS-I pour les services Web.

Pour afficher les services Web SOAP disponibles sur votre serveur Spectrum™ Technology Platform, accédez à :

http://server:port/soap

Remarque : Par défaut, Spectrum™ Technology Platform utilise le port 8080 pour les communications HTTP. Votre administrateur peut avoir configuré un port différent.

URL WSDL

Le WSDL pour un Spectrum™ Technology Platform de service Web est :

http://server:port/soap/service_name?wsdl

Par exemple :

http://myserver:8080/soap/ValidateAddress?wsdl

Le modèle de service web est un modèle générique pour tous les services. Le fichier WSDL de tout service Web Spectrum™ Technology Platform contient la même définition des opérations et des types de données. Ce qui différentie le fichier WSDL est le service cible et les valeurs (options et données) qui sont fournis lors de l'exécution.

Champs d'utilisateur

Vous pouvez transmettre des champs supplémentaires via le service Web, même si ce dernier ne les utilise pas. Ces champs sont renvoyés, intacts, dans l'élément <user_fields> de la réponse. Par exemple, cette requête contient un champ utilisateur nommé id d'une valeur 5 :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:val="http://www.pb.com/spectrum/services/ValidateAddress">
   <soapenv:Header/>
   <soapenv:Body>
      <val:ValidateAddressRequest>
         <val:input_port>
            <val:Address>
               <val:AddressLine1>3001 summer</val:AddressLine1>
               <val:City>stamford</val:City>
               <val:StateProvince>ct</val:StateProvince>
                <val:user_fields>
                  <val:user_field>
                     <val:name>id</val:name>
                     <val:value>5</val:value>
                  </val:user_field>
               </val:user_fields>
            </val:Address>
         </val:input_port>
      </val:ValidateAddressRequest>
   </soapenv:Body>
</soapenv:Envelope>

Le champ utilisateur est renvoyé, intact, dans la réponse :

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns3:ValidateAddressResponse xmlns:ns2="http://spectrum.pb.com/" xmlns:ns3="http://www.pb.com/spectrum/services/ValidateAddress">
         <ns3:output_port>
            <ns3:Address>
               <ns3:Confidence>86</ns3:Confidence>
               <ns3:RecordType>HighRise</ns3:RecordType>
               <ns3:RecordType.Default>Y</ns3:RecordType.Default>
               <ns3:CountryLevel>A</ns3:CountryLevel>
               <ns3:ProcessedBy>USA</ns3:ProcessedBy>
               <ns3:MatchScore>0</ns3:MatchScore>
               <ns3:AddressLine1>3001 Summer St</ns3:AddressLine1>
               <ns3:City>Stamford</ns3:City>
               <ns3:StateProvince>CT</ns3:StateProvince>
               <ns3:PostalCode>06905-4317</ns3:PostalCode>
               <ns3:PostalCode.Base>06905</ns3:PostalCode.Base>
               <ns3:PostalCode.AddOn>4317</ns3:PostalCode.AddOn>
               <ns3:Country>United States Of America</ns3:Country>
               <ns3:AdditionalInputData.Base/>
               <ns3:POBoxOnlyDeliveryZone/>
               <ns3:user_fields>
                  <ns3:user_field>
                     <ns3:name>id</ns3:name>
                     <ns3:value>5</ns3:value>
                  </ns3:user_field>
               </ns3:user_fields>
            </ns3:Address>
         </ns3:output_port>
      </ns3:ValidateAddressResponse>
   </soap:Body>
</soap:Envelope>
Remarque : Les noms de champ utilisateur ne doivent pas contenir de caractères non valides dans les noms d'élément XML. Par exemple, les espaces ne sont pas valides.

Échantillon de requête SOAP

L'échantillon de requête SOAP suivant appelle le service ValidateAddress. Les sections pour les options et les rangées sont toutes dépendantes des métadonnées pour ce service Web particulier ; par conséquent, différents composants auront différentes entrées de métadonnées. De plus, il y a une section user_fields qui vous permet de passer des valeurs de champ qui seront retournées, non modifiées dans la réponse.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ​xmlns:val="http://www.pb.com/spectrum/services/ValidateAddress">
   <soapenv:Header/>
   <soapenv:Body>
      <val:ValidateAddressRequest>
         <val:options>
            <val:OutputFormattedOnFail>Y</val:OutputFormattedOnFail>
         </val:options>
         <val:input_port>
            <val:Address>
               <val:AddressLine1>1525B Kramer Lane</val:AddressLine1>
               <val:AddressLine2>Suite 100</val:AddressLine2>
               <val:PostalCode>78758</val:PostalCode>
            </val:Address>
         </val:input_port>
      </val:ValidateAddressRequest>
   </soapenv:Body>
</soapenv:Envelope>

Échantillon de réponse SOAP

L'échantillon de requête ci-dessus renverrait la réponse suivante :

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns3:ValidateAddressResponse xmlns:ns2="http://spectrum.pb.com/" ​xmlns:ns3="http://www.pb.com/spectrum/services/ValidateAddress">
         <ns3:output_port>
            <ns3:Address>
               <ns3:Confidence>88</ns3:Confidence>
               <ns3:RecordType>Normal</ns3:RecordType>
               <ns3:CountryLevel>A</ns3:CountryLevel>
               <ns3:ProcessedBy>USA</ns3:ProcessedBy>
               <ns3:MatchScore>0</ns3:MatchScore>
               <ns3:AddressLine1>1525B Kramer Ln Ste 100</ns3:AddressLine1>
               <ns3:City>Austin</ns3:City>
               <ns3:StateProvince>TX</ns3:StateProvince>
               <ns3:PostalCode>78758-4227</ns3:PostalCode>
               <ns3:PostalCode.Base>78758</ns3:PostalCode.Base>
               <ns3:PostalCode.AddOn>4227</ns3:PostalCode.AddOn>
               <ns3:Country>United States Of America</ns3:Country>
               <ns3:user_fields/>
            </ns3:Address>
         </ns3:output_port>
      </ns3:ValidateAddressResponse>
   </soap:Body>
</soap:Envelope>