Die REST-Schnittstelle

Spectrum™ Technology Platform stellt eine REST-Schnittstelle für Webservices bereit. Benutzerdefinierte Webservices, nämlich die im Enterprise Designer erstellten Webservices, unterstützen GET- und POST-Methoden. Als Teil eines Moduls installierte Standarddienste unterstützen nur die GET-Methode. Wenn Sie über die POST-Methode auf einen dieser Dienste zugreifen möchten, müssen Sie im Enterprise Designer einen benutzerdefinierten Dienst erstellen.

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

http://server:port/rest

Anmerkung: Empfehlung: Beschränken Sie die Parameter aufgrund von URL-Längenbeschränkungen auf 2.048.

Dienstendpunkte

Der Endpunkt für eine XML-Anforderung lautet:

http://server:port/rest/service_name/results.xml

Der Endpunkt für eine JSON-Anforderung lautet:

http://server:port/rest/service_name/results.json

Endpunkte für benutzerdefinierte Webservices können im Enterprise Designer geändert werden, um eine andere URL zu verwenden.

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

WADL-URL

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

http://server:port/rest/service_name?_wadl

Beispiel:

http://myserver:8080/rest/ValidateAddress?_wadl

Benutzerfelder

Sie können zusätzliche Felder über den Webservice übergeben, auch wenn der Webservice die Felder nicht verwendet. Diese Felder werden unverändert im Bereich user_fields der Antwort zurückgegeben. Bei GET-Anforderungen werden Benutzerfelder ähnlich wie bei anderen Feldern als Parameter in der URL übertragen. Bei POST-Anforderungen werden Benutzerfelder als Teil des Elements user_fields in der XML- oder JSON-Anforderung übertragen.

Anmerkung: Die Namen von Benutzerfeldern dürfen keine Zeichen enthalten, die in XML- oder JSON-Elementnamen ungültig sind. Leerzeichen sind beispielsweise nicht gültig.

Beispiel: REST-Anforderung anhand von GET mit einer XML-Antwort

Im folgenden Beispiel wird veranschaulicht, wie eine REST-Anforderung an den ValidateAddress-Dienst anhand der GET-Methode durchgeführt wird, um eine Antwort in XML anzufordern.

http://myserver:8080/rest/ValidateAddress/results.xml?Option.OutputCasing=U&​Data.AddressLine1=1825+Kramer+Lane&Data.PostalCode=78759

Die Beispielanforderung hätte das folgende Ergebnis zur Folge, da eine XML-Antwort angefordert wurde:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xml.ValidateAddressResponse xmlns="http://www.pb.com/spectrum/services/ValidateAddress">
    <output_port>
        <Address>
            <Confidence>82</Confidence>
            <RecordType>Normal</RecordType>
            <CountryLevel>A</CountryLevel>
            <ProcessedBy>USA</ProcessedBy>
            <MatchScore>0</MatchScore>
            <AddressLine1>1825 KRAMER LN</AddressLine1>
            <City>AUSTIN</City>
            <StateProvince>TX</StateProvince>
            <PostalCode>78758-4260</PostalCode>
            <PostalCode.Base>78758</PostalCode.Base>
            <PostalCode.AddOn>4260</PostalCode.AddOn>
            <Country>UNITED STATES OF AMERICA</Country>
            <user_fields/>
        </Address>
    </output_port>
</xml.ValidateAddressResponse>

Beispiel: REST-Anforderung anhand von GET mit einer JSON-Antwort

Im folgenden Beispiel wird veranschaulicht, wie eine REST-Anforderung an den ValidateAddress-Dienst anhand der GET-Methode durchgeführt wird, um eine Antwort in JSON anzufordern.

http://myserver:8080/rest/ValidateAddress/results.json?Option.OutputCasing=U&​Data.AddressLine1=1825+Kramer+Lane&Data.PostalCode=78759

Die Beispielanforderung hätte das folgende Ergebnis zur Folge, da eine JSON-Antwort angefordert wurde:

{
	"ns1.json.ValidateAddressResponse" :
	{
	"ns1.output_port" :
	{
	"ns1.Confidence" : 82,
	"ns1.RecordType" : "Normal",
	"ns1.CountryLevel" : "A",
	"ns1.ProcessedBy" : "USA",
	"ns1.MatchScore" : 0,
	"ns1.AddressLine1" : "1825 KRAMER LN",
	"ns1.City" : "AUSTIN",
	"ns1.StateProvince" : "TX",
	"ns1.PostalCode" : "78758-4260",
	"ns1.PostalCode.Base" : 78758,
	"ns1.PostalCode.AddOn" : 4260,
	"ns1.Country" : "UNITED STATES OF AMERICA"
	}
	}
}