Requête JSON 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 JSON. Indiquez Content-Type:application/json et utilisez le format suivant pour les requêtes JSON POST.

Données plates

Utilisez ce format dans la requête pour envoyer des données plates à un service Web à l'aide de POST.

{
  "InputStageName": 
  {
    "InputDataType": [
      {
        "FieldName1": "FieldValue1",
        "FieldName2": "FieldValue2"
      }
    ]
  }
}

Où :

InputStageName
Nom du stage Input tel qu'indiqué sur le canevas dans Enterprise Designer. Le nom par défaut du stage est Input.
InputDataType
Nom donné à l'entité d'enregistrement. Cette valeur est spécifiée dans le stage Input du dataflow, dans le champ Nom de type de données de l'onglet Champs d'entrée. Le nom par défaut de l'entité d'enregistrement est Row.
FieldName1 et FieldName2
Noms des champs d'entrée définis dans le stage Input du service.
FieldValue1 et FieldValue2
Données d'entrée que vous souhaitez envoyer au service Web dans le champ correspondant.

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.

{
  "InputStageName": 
  {
    "InputDataType": [
      {
        "ListField1":[
          {"SubfieldName1": "SubfieldValue1"},
          {"SubfieldName2": "SubfieldValue2"}
        ]
      }
    ]
  }
}

Où :

InputStageName
Nom du stage Input tel qu'indiqué sur le canevas dans Enterprise Designer. Le nom par défaut du stage est Input.
InputDataType
Nom donné à l'entité d'enregistrement. Cette valeur est spécifiée dans le stage Input du dataflow, dans le champ Nom de type de données de l'onglet Champs d'entrée. Le nom par défaut de l'entité d'enregistrement est Row.
ListField1
Nom du champ hiérarchique défini dans le stage Input du service.
SubfieldName1 et SubfieldName2
Noms des champs enfants qui composent le champ de liste.
SubfieldValue1 et SubfieldValue2
Données d'entrée que vous souhaitez envoyer au service Web.

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.

{
  "InputStageName": 
  {
    "InputDataType": [
      {
        "user_fields": [
        {
          "name": "FieldName1",
          "value": "FieldValue1"
        },
        {
          "name": "FieldName2",
          "value": "FieldValue2"
        }]
      }
    ]
  }
}

Où :

InputStageName
Nom du stage Input tel qu'indiqué sur le canevas dans Enterprise Designer. Le nom par défaut du stage est Input.
InputDataType
Nom donné à l'entité d'enregistrement. Cette valeur est spécifiée dans le stage Input du dataflow, dans le champ Nom de type de données de l'onglet Champs d'entrée. Le nom par défaut de l'entité d'enregistrement est Row.
FieldName1 et FieldName2
Nom du champ de transit.
FieldValue1 et FieldValue2
Données que vous souhaitez inclure dans le champ de transit.

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 :

"options" : {
     "OptionName1" : "Value1"
},

Où :

OptionName1
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.
OptionValue1
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.

Exemple de requête JSON 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 JSON à un service Web via POST.

{
  "options" : {
    "OutputCasing" : "U"
},
  "Input": 
  {
    "Address": [
      {
        "AddressLine1": "1825 Kramer Ln",
        "City": "Austin",
        "StateProvince": "TX",
        "Accounts": [
        {
          
          "AccountNumber": "120993",
          "ExpirationDate": "10-3-2017"
         },
         {
          
          "AccountNumber": "898732",
          "ExpirationDate": "8-13-2016"
         }
        ],
        "user_fields": [
        {
          "name": "Note1",
          "value": "Prefers decaffeinated coffee"
        },
        {
          "name": "Note2",
          "value": "Requests east facing window"
        }] 
      }
    ]
  }
}
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.
  • Address 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.
  • AddressLine1, City et StateProvince sont des champs texte.
  • Accounts est un champ hiérarchique (« liste ») contenant des sous-champs nommés AccountNumber et ExpirationDate. Cet exemple inclut deux comptes.
  • user_fields contient des champs définis par l'utilisateur qui sont transmis et renvoyés intacts par le service Web dans la sortie.