Beispiel für Scripted REST APIs – Skriptbeispiele
Diese Beispiele zeigen, wie verschiedene Ressourcen-Skripts für eine geskriptete REST-API erstellt werden.
Abfrageparameter RUFEN Beispiel AB
Dieses Beispiel zeigt, wie Abfrageparameterwerte aus einer Anforderung abgerufen werden.
/**
* GET - Sample Request API - Query Params
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var uri = request.uri;
var url = request.url;
var queryParams = request.queryParams;
var customHeader = request.getHeader('X-Custom');
return {
"uri": uri,
"url": url,
"queryParams": queryParams,
"customHeader": customHeader
};
})(request, response);
Pfadparameter GET Beispiel
Dieses Beispiel zeigt, wie Pfadparameterwerte aus einer Anforderung abgerufen werden.
/**
* GET - Sample Request API - Path Params
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var uri = request.uri;
var url = request.url;
var path = request.pathParams;
return {
"uri": uri,
"url": url,
"path_params": path,
"path.id": path.id
};
})(request, response);
Skripteinbindung – Beispiel ABRUFEN
Dieses Beispiel zeigt, wie eine Skripteinbindung verwendet wird, um eine Antwort bereitzustellen. Durch die Verwendung einer Skripteinbindung können Sie allgemeinen Code wiederverwenden und die Lesbarkeit in den REST-Service-Skripts beibehalten.
/**
* GET - Sample Request API - Script Include
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var responseObj = global.SampleDataUtil.getSampleJSON();
return responseObj;
})(request, response);
Beispiel für ZEICHENFOLGENPOST
Dieses Beispiel zeigt, wie eine POST-Nachricht mit einem Zeichenfolgentext analysiert und eine Antwort basierend auf der Anforderung gesendet wird.
/**
* POST - Sample Request API - dataString
* sample usage:
* var requestBody = request.body;
* var requestString = requestBody.dataString;
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var requestBody = request.body;
var requestString = requestBody.dataString;
return {"requestString": requestString};
})(request, response);
Beispiel für BINÄRPOST
Dieses Beispiel zeigt, wie eine POST-Nachricht mit einem binären Text analysiert und eine Antwort basierend auf der Anforderung gesendet wird.
/**
* POST - Sample Request API - Body
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var body = request.body.data;
//do any additional processing on the request body, such as inserting a new record.
return {
"body.id": body.id
};
})(request, response);
Beispiel für nicht akzeptablen Fehler
Dieses Beispiel zeigt, wie Sie mit einem nicht akzeptablen Fehler reagieren. Verwenden Sie diesen Fehlertyp, wenn der Headerwert für die Anforderungsannahme vom Webservice nicht unterstützt wird.
/**
* Sample Not Acceptable Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.NotAcceptableError('sample error message'));
})(request, response);
Beispiel für fehlerhaften Anforderungsfehler
Dieses Beispiel demonstriert, wie Sie auf einen Fehler bei einer ungültigen Anforderung reagieren. Verwenden Sie diesen Fehlertyp, um einen Fehler in der Anforderungssyntax anzugeben.
/**
* Bad Request Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.BadRequestError('sample error message'));
})(request, response);
Beispiel für Konfliktfehler
Dieses Beispiel demonstriert, wie Sie auf einen Konfliktfehler reagieren. Verwenden Sie diesen Fehlertyp im Falle mehrerer in Konflikt stehender Anforderungen, z. B. mehrerer Aktualisierungen desselben Datensatzes.
/**
* Error Response: Conflict Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.ConflictError('sample error message'));
})(request, response);
Fehlerbeispiel „nicht gefunden“
Dieses Beispiel zeigt, wie Sie mit einem Fehler „nicht gefunden“ reagieren. Verwenden Sie diesen Fehlertyp, wenn die angeforderte Ressource nicht vorhanden oder nicht verfügbar ist.
/**
* Error Response: Not Found Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.NotFoundError('sample error message'));
})(request, response);
Beispiel für nicht unterstützten Medientypfehler
Dieses Beispiel demonstriert, wie Sie bei einem nicht unterstützten Medientypfehler reagieren. Verwenden Sie diesen Fehlertyp, um anzugeben, dass der Inhaltstyp der Anforderung nicht unterstützt wird.
/**
* Error Response: Unsupported Media Type Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.UnsupportedMediaTypeError('sample error message'));
})(request, response);
Beispiel für Servicefehler
Dieses Beispiel zeigt, wie Sie mit einem generischen Servicefehler reagieren. Mit dem Objekt „ServiceError“ können Sie den Statuscode, die Meldung und das Fehlerdetail definieren. Verwenden Sie einen ServiceError, wenn die vordefinierten Fehlertypen nicht Ihren Anforderungen entsprechen.
/**
* Error Response: Custom Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var myError = new sn_ws_err.ServiceError();
myError.setStatus(418);
myError.setMessage("I am a Teapot");
myError.setDetail("Here are the details about this error");
response.setError(myError);
})(request, response);
Beispiel für Funktionsklammern-Fehler
Dieses Beispiel zeigt, dass eine Funktion, die nicht in Klammern eingeschlossen ist, zu einem Fehler führt. Klammern in alle Funktionen einschließen.
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
gs.info("message: {0}", request.body.data.message);
})(request, response);
function test() {
gs.info("test");
}(request, response);
Beispiel für Serialisierungsfehler
Dieses Beispiel zeigt, dass die Anforderung, wenn sie als Text für die Antwort festgelegt ist, zu einem Serialisierungsfehler führen kann.
setBody_request:
response.setBody(request);
Dieses Beispiel zeigt, dass, wenn die Antwort als Textkörper für die Antwort festgelegt ist, dies zu einem Serialisierungsfehler führen kann.
setBody_response:
response.setBody(response);
Dieses Beispiel zeigt, dass die Anforderung, wenn sie zurückgegeben wird, zu einem Serialisierungsfehler führen kann.
return_request:
return request;
Dieses Beispiel zeigt, dass die Rückgabe der Antwort zu einem Serialisierungsfehler führen kann.
return_response:
return response;
Beispiel für geskriptetes REST-Ressourcenskript
/**
* POST - Sample Request API - Body
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var body = request.body.data,
id0,name0,id1,name1;
name0 = body[0].name; // 'user0'
id0 = body[0].id; // '1234'
name1 = body[1].name; // 'user1'
id1 = body[1].id; // '5678'
return {
"id": id0,
"name": name0,
"id1": id1,
"name1": name1
};
})(request, response);Anforderungen
| JSON-Anforderung | XML-Anforderung |
|---|---|
|
|
Antworten
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 04 Aug 2015 15:20:44 GMT
Server: ServiceNow
Connection: close
Set-Cookie: BIGipServerpool_<Instance>=880838154.47166.0000; path=/
{"result":{"id":1234,"id1":5678,"name":"user0","name1":"user1"}}