L'interface REST

Spectrum™ Technology Platform fournit une interface REST aux services Web. Les services Web définis par l'utilisateur, qui sont ceux créés dans Enterprise Designer, prennent en charge les méthodes GET et POST. Les services par défaut installés dans le cadre d'un module prennent uniquement en charge GET. Si vous souhaitez accéder à l'un de ces services via POST, vous devez créer un service défini par l'utilisateur dans Enterprise Designer.

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

http://server:port/rest

Remarque : À cause des limites de longueur des URL, nous vous recommandons de limiter vos paramètres à 2 048 caractères.

Destinations des services

Le point de terminaison pour une réponse XML est la suivante :

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

Le point de terminaison pour une réponse XML est la suivante :

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

Les destinations des services Web définies par l'utilisateur peuvent être modifiées dans Enterprise Designer pour utiliser une autre URL.

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 WADL

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

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

Par exemple :

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

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 la section user_fields de la réponse. Pour les requêtes GET, les champs utilisateur sont transmis sous forme de paramètre dans l'URL, comme tout autre champ. Pour les requêtes POST, les champs d'utilisateur sont transmis dans le cadre de l'élément user_fields de la requête XML ou JSON.

Remarque : Les noms de champ d'utilisateur ne doivent pas contenir de caractères non valides dans les noms d'élément XML ou JSON. Par exemple, les espaces ne sont pas valides.

Échantillon de requête REST utilisant GET avec une réponse XML

L'exemple suivant indique comment envoyer une requête REST au service ValidateAddress via la méthode GET demandant une réponse au format XML.

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

Étant donné qu'une réponse XML a été demandée, l'échantillon de requête donnerait la réponse suivante :

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

Échantillon de requête REST utilisant GET avec une réponse JSON

L'exemple suivant indique comment envoyer une requête REST au service ValidateAddress via la méthode GET demandant une réponse au format JSON.

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

Étant donné qu'une réponse JSON a été demandée, l'échantillon de requête donnerait le résultat suivant :

{
	"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"
	}
	}
}