Formats de sortie des messages

L'ajout d'un paramètre de contrôle HTTP de service Web vous permet de spécifier le format de sortie à générer pour les messages de sortie avec les liaisons HTTP de type REST.

Le paramètre de contrôle facultatif outputFormat permet d'indiquer le format des messages de sortie à partir de l'exécution d'une opération dans un service Web. Si vous indiquez une valeur du paramètre outputFormat lors du déploiement d'un service Web, le format de sortie spécifié est utilisé chaque fois qu'une opération est exécutée dans le service Web. Si vous ne spécifiez aucune valeur lors du déploiement, un format de sortie peut être indiqué lorsqu'une opération est exécutée dans un service Web. Si aucun format de sortie n'est spécifié lors de la phase d'exécution, le format par défaut est utilisé.

La liaison HTTP détermine le format de sortie par défaut, comme indiqué dans le tableau 1.

Tableau 1. Format de sortie par défaut pour les liaisons HTTP
Liaison Format de sortie par défaut Type MIME
HTTP GET XML texte/xml
HTTP POST (codé dans l'adresse URL) XML texte/xml
HTTP POST (xml) XML texte/xml
HTTP POST (json) JSON application/json
Exceptions du format de sortie
SOAP
Avec une liaison SOAP, il n'existe aucun moyen d'influer sur le format de sortie. Le format de sortie est toujours XML.
Sortie XSL
Lorsqu'une opération dispose d'un langage XSL affecté à la transformation d'un message de sortie, le paramètre de contrôle outputFormat est ignoré. Dans ce cas, le format et le type MIME sont définis via le langage XSL.

Format de sortie JSON par défaut

Le format de sortie JSON par défaut suit la spécification JSON définie sur www.json.org.

Noms de colonnes
Les noms de colonnes deviennent des noms d'objets JSON.
Type de données
Les conversions des types de données utilisées pour les formats de sortie JSON et XML sont identiques.
  • Les valeurs date/heure utilisent le format date/heure du langage de définition de schéma XML et sont représentées en tant que chaînes JSON. Il n'existe aucun format date/heure dans JSON.
  • Les valeurs binaires correspondent à des chaînes JSON codées base64.
  • Tous les nombres sont mappés à des nombres JSON.
  • SQL NULL est mappé à JSON null.
  • XML est intégré en tant que chaîne JSON.
  • Le booléen SQL est mappé au booléen JSON.
Formats de sortie en fonction du type d'opération
Les informations suivantes présentent les différents formats en fonction des types d'opération.
SQL SELECT (ensemble de résultats)
Un ensemble de résultats est renvoyé en tant que tableau JSON. L'exemple suivant présente un ensemble de résultats comprenant des informations renvoyées pour plusieurs employés.
{"getEmployeesResponse":
    [
        {
        "EMPNO":"000010",
        "FIRSTNME":"CHRISTINE",
        "MIDINIT":"I",
        "LASTNAME":"HAAS",
        "WORKDEPT":"A00",
        "PHONENO":"3978",
        "HIREDATE":"1995-01-01Z",
        "JOB":"PRES    ",
        "EDLEVEL":18,
        "SEX":"F",
        "BIRTHDATE":"1963-08-24Z",
        "SALARY":96800.00,
        "BONUS":21113.19,
        "COMM":4220.00},
        {
        "EMPNO":"000020",
        "FIRSTNME":"MICHAEL",
        "MIDINIT":"L",
        "LASTNAME":"THOMPSON", ...}
    ]
}
Si la case Fetch only single row for queries est cochée lorsqu'une opération est définie, un objet JSON pour la première ligne de la requête est renvoyé à la place d'un tableau JSON. Le code suivant est un exemple de la première ligne d'une requête renvoyée en tant qu'objet JSON.
{"getEmployeesResponse":
    {
    "EMPNO":"000010",
    "FIRSTNME":"CHRISTINE",
    "MIDINIT":"I",
    "LASTNAME":"HAAS",
    "WORKDEPT":"A00",
    "PHONENO":"3978",
    "HIREDATE":"1995-01-01Z",
    "JOB":"PRES    ",
    "EDLEVEL":18,
    "SEX":"F",
    "BIRTHDATE":"1963-08-24Z",
    "SALARY":96800.00,
    "BONUS":21113.19,
    "COMM":4220.00}
}
SQL UPDATE (INSERT, DELETE ou MERGE) (mise à jour d'un compte)
Le code suivant est un exemple du format de message JSON pour une opération SQL UPDATE via une mise à jour de compte.
{"updateEmployeeResponse":{"updateCount":1}}
Appel d'une procédure mémorisée
Le code suivant affiche un tableau JSON pour chaque ensemble de lignes renvoyé à partir de l'appel d'une procédure mémorisée.
{"BONUS_INCREASEResponse":
    {
    "P_DEPTSWITHOUTNEWBONUSES":"",
    "P_COUNTDEPTSVIEWED":8,
    "P_COUNTDEPTSBONUSCHANGED":8,
    "P_ERRORMSG":"",
    "rowset":
        [
            {
            "WORKDEPT":"A00",
            "EMPNO":"000010",
            "BONUS":25546.95},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000110",
            "BONUS":22992.12},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000120",
            ...}
        ],
    "rowset2":
        [
            {
            "WORKDEPT":"A00",
            "EMPNO":"000010",
            "BONUS":25546.95},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000110",
            "BONUS":22992.12},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000120",
            ...}
        ],
        ...
    }
}
XQuery
Les résultats émanant d'une requête XQuery sont renvoyés en tant que tableau JSON. L'exemple suivant présente les résultats XQuery dans un tableau JSON :
{"testXQueryResponse":
    [
        "Basic Snow Shovel, ",
        "A Deluxe Snow Shovel ...",
        ...
    ]
}
Si la case Fetch only single row for queries est cochée lorsqu'une opération est définie, un objet JSON pour la première ligne des résultats XQuery est renvoyé à la place d'un tableau JSON. Le code suivant est un exemple de la première valeur de chaîne des résultats XQuery, renvoyée en tant qu'objet JSON.
{"testXQueryResponse":
    "Basic Snow Shovel, "
}

Commentaires