Ein neuer HTTP-Steuerparameter für Web-Services wurde hinzugefügt. Mit diesem können Sie nun angeben, welches Ausgabeformat für Ausgabenachrichten mit REST-ähnlichen HTTP-Bindungen generiert werden soll.
Sie können mit dem optionalen Steuerparameter outputFormat das Format der Ausgabenachrichten angeben, indem Sie eine Operation in einem Web-Service ausführen. Wenn Sie bei der Implementierung eines Web-Service einen Wert für den Parameter outputFormat angeben, wird das angegebene Ausgabeformat bei jeder Ausführung einer Operation in dem Web-Service verwendet. Geben Sie bei der Implementierung keinen Wert für den Parameter an, kann ein Ausgabeformat angegeben werden, wenn eine Operation im Web-Service ausgeführt wird. Wird kein Ausgabeformat während der Ausführung angegeben, wird das Standardausgabeformat verwendet.
Wie die HTTP-Bindung das Standardausgabeformat bestimmt, können Sie in Tabelle 1 sehen.
Tabelle 1. Standardausgabeformat für HTTP-BindungenBindung |
Standardausgabeformat |
MIME-Typ |
HTTP GET |
XML |
text/xml |
HTTP POST (URL-codiert) |
XML |
text/xml |
HTTP POST (xml) |
XML |
text/xml |
HTTP POST (JSON) |
JSON |
application/json |
- Ausnahmen beim Ausgabeformat
- SOAP
- Bei einer SOAP-Bindung kann das Ausgabeformat nicht beeinflusst werden.
Das Ausgabeformat ist immer XML.
- XSL-Ausgabe
- Wenn einer Operation eine XSL zum Umsetzen der Ausgabenachricht zugeordnet wurde, wird der Steuerparameter outputFormat ignoriert.
In diesem Fall werden das Format und der MIME-Typ von der XSL bestimmt.
Standard-JSON-Ausgabeformat
Das Standard-JSON-Ausgabeformat entspricht der
JSON-Spezifikation, die Sie unter der folgenden Internetadresse finden können: www.json.org.
- Spaltennamen
- Spaltennamen werden zu JSON-Objektnamen.
- Datentypen
- Für das JSON-Ausgabeformat werden dieselben Datentypkonvertierungen verwendet wie für das XML-Ausgabeformat.
- Datums- und Zeitwerte verwenden das XSD-Datums- und Zeitformat und werden als JSON-Zeichenfolgen dargestellt. Es gibt in JSON keine Datums- und Zeitformate.
- Binärwerte sind Base64-codierte JSON-Zeichenfolgen.
- Alle Zahlen werden JSON-Zahlen zugeordnet.
- Der SQL-Nullwert wird dem JSON-Nullwert zugeordnet.
- XML wird als JSON-Zeichenfolge integriert.
- Boolesche SQL-Werte werden booleschen JSON-Werten zugeordnet.
- Ausgabeformate nach Operationstyp
- Die folgenden Informationen beschreiben die unterschiedlichen Formate, die auf den Operationstypen basieren.
- SQL SELECT (Ergebnismenge)
- Eine Ergebnismenge wird als ein JSON-Array zurückgegeben. Im folgenden Beispiel wird eine Ergebnismenge mit Informationen gezeigt, die für mehrere Mitarbeiter zurückgegeben wird.
{"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", ...}
]
}
Wenn das Kontrollkästchen
Für Abfragen nur einzelne Zeile abrufen bei der Definition einer Operation ausgewählt wurde, wird ein JSON-Objekt für die erste Zeile der Abfrage anstatt eines JSON-Arrays zurückgegeben. Der folgende Code zeigt ein Beispiel für die erste Zeile einer Abfrage, die als JSON-Objekt zurückgegeben wird.
{"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 oder MERGE) (Aktualisierungszähler)
- Der folgende Code ist ein Beispiel für das JSON-Nachrichtenformat für eine SQL-Operation UPDATE mit Aktualisierungszähler.
{"updateEmployeeResponse":{"updateCount":1}}
- Aufruf einer gespeicherten Prozedur
- Der folgende Code zeigt ein JSON-Array für jede Zeilengruppe, das vom Aufruf einer gespeicherten Prozedur zurückgegeben wird.
{"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
- Die Ergebnisse einer XQuery-Anweisung werden als ein JSON-Array zurückgegeben. Im folgenden Beispiel werden die XQuery-Ergebnisse in einem JSON-Array gezeigt:
{"testXQueryResponse":
[
"Basic Snow Shovel, ",
"A Deluxe Snow Shovel ...",
...
]
}
Wenn das Kontrollkästchen
Für Abfragen nur einzelne Zeile abrufen bei der Definition einer Operation ausgewählt wurde, wird ein JSON-Objekt für die erste Zeile der XQuery-Ergebnisse anstatt eines JSON-Arrays zurückgegeben. Der folgende Code zeigt ein Beispiel für den ersten Zeichenfolgewert der XQuery-Ergebnisse, die als JSON-Objekt zurückgegeben werden.
{"testXQueryResponse":
"Basic Snow Shovel, "
}