Die SOAP-Schnittstelle

Der Spectrum™ Technology Platform-Server gewährt den Zugriff auf Dienste anhand von SOAP im „document/literal“-Modus. „Document/literal“-Webservices stellen das mit WS-I kompatible Format für Webservices dar.

Navigieren Sie zum folgenden Pfad, um die auf Ihrem Spectrum™ Technology Platform-Server verfügbaren SOAP-Webservices anzuzeigen:

http://server:port/soap

Anmerkung: Standardmäßig verwendet Spectrum™ Technology Platform den Port 8080 für die HTTP-Kommunikation. Eventuell hat Ihr Administrator einen anderen Port konfiguriert.

WSDL-URL

Die WSDL für einen Spectrum™ Technology Platform-Webservice lautet:

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

Beispiel:

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

Bei dem Webservice-Modell handelt es sich um ein allgemeines Modell für alle Dienste. Die WSDL für jeden Spectrum™ Technology Platform-Webservice enthält dieselbe Definition von Datentypen und Vorgängen. Das Unterscheidungsmerkmal der WSDL bilden der Zieldienst und die Werte (Optionen und Daten), die zur Laufzeit bereitgestellt werden.

Benutzerfelder

Sie können zusätzliche Felder über den Webservice übergeben, auch wenn der Webservice diese nicht verwendet. Diese Felder werden unverändert im Element <user_fields> der Antwort zurückgegeben. Beispiel: Die folgende Anforderung enthält ein Benutzerfeld mit der Bezeichnung id und einem Wert von 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>

Das folgende Benutzerfeld wird unverändert in der Antwort zurückgegeben:

<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>
Anmerkung: Die Namen von Benutzerfeldern dürfen keine Zeichen enthalten, die in XML-Elementnamen ungültig sind. Leerzeichen sind beispielsweise nicht gültig.

Beispiel für SOAP-Anforderung

In der folgenden SOAP-Anforderung wird der ValidateAddress-Dienst aufgerufen. Die Abschnitte für Optionen und Zeilen hängen alle von den Metadaten für diesen speziellen Webservice ab. Deshalb haben unterschiedliche Komponenten unterschiedliche Metadateneinträge. Zusätzlich gibt es einen Abschnitt „user_fields“, der Ihnen ermöglicht, Feldwerte zu übergeben, die unverändert in der Antwort zurückgegeben werden.

<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>

Beispiel für SOAP-Antwort

Im Rahmen der Beispielanforderung würde die folgende Antwort zurückgegeben werden.

<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>