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 HTTPLiaison |
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, "
}