Requête XML POST

Les services Web définis par l'utilisateur peuvent être exposés sous forme de service Web REST et configurés pour avoir une méthode POST qui accepte une entrée XML. Indiquez Content-Type:application/xml et utilisez le format suivant pour les requêtes XML POST.

Données plates

Utilisez ce format pour envoyer des données plates à un service Web à l'aide de POST :

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
       <svc:Row>
          <svc:Field1>Example value</svc:Field1>
          <svc:Field2>Another example value</svc:Field2>
       </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Où :

ServiceName
Nom du service Web sur le serveur Spectrum™ Technology Platform.
Field1 et Field2
Noms des champs d'entrée définis dans le stage Input du service.

Par exemple, cette requête envoie un prénom et un nom de famille à un service nommé CasingExample.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
       <svc:Row>
          <svc:FirstName>Alex</svc:FirstName>
          <svc:LastName>Smith</svc:LastName>
       </svc:Row>
    </svc:Input>
</CasingExampleRequest>

Données de liste

Les données de liste se composent de groupements hiérarchiques de champs regroupés sous un champ parent.
Remarque : Afin d'utiliser les données de liste comme entrée, le service doit être exposé sous forme de service Web REST sans aucune ressource GET. Si le service dispose d'une ressource GET, vous obtiendrez un message d'erreur dans Enterprise Designer lors de l'exposition du service, car les champs hiérarchiques ne sont pas pris en charge pour GET.

Utilisez le format suivant pour envoyer des données de liste à un service Web à l'aide de POST.

<?xml version="1.0" encoding="UTF-8"?>
<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
        <svc:Row>
            <svc:ListField1>
                <svc:DataType>
                    <svc:SubField1>Example value</svc:SubField1>
                    <svc:SubField2>Example value</svc:SubField2>
                </svc:DataType>
            </svc:ListField1>
        </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Où :

ListField1
Nom du champ hiérarchique défini dans le stage Input du service.
DataType
Type de données du champ de liste défini dans le stage Input du service.
Subfield1 et Subfield2
Noms des champs enfants qui composent le champ de liste.

Par exemple, cette requête envoie un prénom, un nom de famille et une liste de numéros de téléphone à un service nommé CasingExample.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
       <svc:Row>
          <svc:FirstName>George</svc:FirstName>
          <svc:LastName>Washington</svc:LastName>
          <svc:PhoneNumbers>
              <svc:PhoneNumbers>
                 <svc:HomePhone>123-234-9876</svc:HomePhone>
                 <svc:CellPhone>123-678-9012</svc:CellPhone>
                 <svc:OfficePhone>123-987-6543</svc:OfficePhone>
               </svc:PhoneNumbers>
          </svc:PhoneNumbers>
       </svc:Row>
    </svc:Input>
</CasingExampleRequest>

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. Les champs d'utilisateur que vous fournissez dans la requête n'ont pas besoin d'être définis dans le stage Input du dataflow du service.

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
       <svc:Row>
          <svc:user_fields>
            <svc:user_field>
                <svc:name>FieldName</svc:name>
                <svc:value>FieldValue</svc:value>
            </svc:user_field>
          </svc:user_fields> 
       </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Où :

FieldName
Nom du champ de transit.
FieldValue
Valeur contenue dans le champ de transit.

Par exemple, cette requête envoie le nom du conjoint comme champ de transit. Le nom du champ utilisateur est Spouse et la valeur du champ Martha.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
        <svc:Row>
            <svc:FirstName>George</svc:FirstName>
            <svc:LastName>Washington</svc:LastName>
            <svc:PhoneNumbers>
                <svc:PhoneNumbers>
                    <svc:HomePhone>123-123-1234</svc:HomePhone>
                    <svc:CellPhone>123-456-4567</svc:CellPhone>
                    <svc:OfficePhone>123-678-6789</svc:OfficePhone>
                </svc:PhoneNumbers>
            </svc:PhoneNumbers>
            <svc:user_fields>
                <svc:user_field>
                    <svc:name>Spouse</svc:name>
                    <svc:value>Martha</svc:value>
                </svc:user_field>
            </svc:user_fields>
        </svc:Row>
    </svc:Input>
</CasingExampleRequest>

Options

Vous pouvez spécifier des options dans la requête, en remplaçant les options par défaut spécifiées dans le dataflow du service. Pour les services Web définis par l'utilisateur, vous pouvez uniquement spécifier des options dans la requête si le dataflow a été configuré pour accepter des options. Pour configurer un service pour qu'il accepte des options dans la requête, ouvrez le service dans Enterprise Designer et sélectionnez Modifier > Options de dataflow.

Pour spécifier des options de traitement dans une requête, utilisez ce format :

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:options>
        <svc:OptionName>OptionValue</svc:OptionName>
    </svc:options>
    <svc:Input>
        <svc:Row> ... </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Où :

OptionName
Nom de l'option. Pour obtenir une liste des options valides pour le service, reportez au WADL du service ou ouvrez le service dans Enterprise Designer et sélectionnez Modifier > Options de dataflow.
OptionValue
Valeur autorisée pour l'option. Pour obtenir une liste des valeurs autorisées, ouvrez le service dans Enterprise Designer et sélectionnez Modifier > Options de dataflow.

Par exemple, cette requête définit l’option OutputCasing sur U :

<AddressValidationRequest xmlns:svc="http://www.pb.com/spectrum/services/AddressValidation">
    <svc:options>
      <svc:OutputCasing>U</svc:OutputCasing>
    </svc:options>
    <svc:Input>
       <svc:Row>
          <svc:FirstName>George</svc:FirstName>
          <svc:LastName>Washington</svc:LastName>
          <svc:AddressLine1>123 Main St.</svc:AddressLine1>
          <svc:City>Springfield</svc:City>
          <svc:StateProvince>MO</svc:City>
       </svc:Row>
    </svc:Input>
</AddressValidationRequest>

Exemple de requête XML via POST

L'exemple suivant montre comment inclure des options, des champs texte, un champ de liste et des champs définis par l'utilisateur dans une requête XML à un service Web via POST.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:options>
        <svc:OutputCasing>U</svc:OutputCasing>
    </svc:options>
    <svc:Input>
        <svc:Row>
            <svc:FirstName>George</svc:FirstName>
            <svc:LastName>Washington</svc:LastName>
            <svc:AddressLine1>1073 Maple</svc:AddressLine1>
            <svc:City>Batavia</svc:City>
            <svc:StateProvince>IL</svc:StateProvince>
            <svc:PhoneNumbers>
                <svc:PhoneNumbers>
                    <svc:HomePhone>123-123-1234</svc:HomePhone>
                    <svc:CellPhone>123-345-3456</svc:CellPhone>
                    <svc:OfficePhone>123-456-4567</svc:OfficePhone>
                </svc:PhoneNumbers>
            </svc:PhoneNumbers>
            <svc:user_fields>
                <svc:user_field>
                    <svc:name>Spouse</svc:name>
                    <svc:value>Martha</svc:value>
                </svc:user_field>
            </svc:user_fields>
        </svc:Row>
    </svc:Input>
</CasingExampleRequest>
Dans cet exemple,
  • OutputCasing est une option exposée par le service Web qui contrôle si la sortie est renvoyée en majuscules ou en minuscules. Dans cette requête, elle est définie sur U pour Upper case (majuscules).
  • Input est le libellé du stage Input du dataflow tel qu'indiqué sur le canevas dans Enterprise Designer.
  • Row est le nom de l'entité d'enregistrement tel que spécifié dans le stage Input du dataflow, dans le champ Nom de type de données de l'onglet Champs d'entrée.
  • FirstName, LastName, AddressLine1, Ville et StateProvince sont des champs texte.
  • PhoneNumbers un champ hiérarchique (« liste ») contenant des noms de sous-champ HomePhone, CellPhone et OfficePhone.
  • user_fields contient des champs définis par l'utilisateur qui sont transmis et renvoyés intacts par le service Web dans la sortie.