Scripted REST API の例 - スクリプトサンプル
これらの例は、Scripted REST API のさまざまなリソーススクリプトを作成する方法を示しています。
クエリパラメーター GET の例
この例では、要求からクエリパラメーター値を取得する方法を示しています。
/**
* 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);
パスパラメーター GET の例
この例では、要求からパスパラメーター値を取得する方法を示しています。
/**
* 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);
スクリプトインクルード GET の例
この例は、スクリプトインクルードを使用して応答を提供する方法を示しています。スクリプトインクルードを使用すると、共通のコードを再利用し、REST サービススクリプトの読みやすさを維持できます。
/**
* GET - Sample Request API - Script Include
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var responseObj = global.SampleDataUtil.getSampleJSON();
return responseObj;
})(request, response);
文字列 POST の例
この例では、文字列本文を含む POST メッセージを解析し、要求に基づいて応答を送信する方法を示しています。
/**
* 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);
バイナリ POST の例
この例では、バイナリ本文を含む POST メッセージを解析し、要求に基づいて応答を送信する方法を示しています。
/**
* 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);
許容範囲外エラーの例
この例は、許容範囲外エラーで応答する方法を示しています。このエラータイプは、要求の Accept ヘッダー値が Web サービスでサポートされていない場合に使用します。
/**
* Sample Not Acceptable Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.NotAcceptableError('sample error message'));
})(request, response);
「要求が正しくありません」エラーの例
この例は、「要求が正しくありません」エラーで応答する方法を示しています。このエラータイプを使用して、要求構文の誤りを示します。
/**
* Bad Request Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.BadRequestError('sample error message'));
})(request, response);
競合エラーの例
この例は、競合エラーで応答する方法を示しています。同じレコードに対する複数の更新など、競合する複数の要求がある場合はこのエラータイプを使用します。
/**
* Error Response: Conflict Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.ConflictError('sample error message'));
})(request, response);
「見つかりません」エラーの例
この例は、「見つかりません」エラーで応答する方法を示しています。要求されたリソースが存在しないか利用できない場合は、このエラータイプを使用します。
/**
* Error Response: Not Found Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.NotFoundError('sample error message'));
})(request, response);
サポートされていないメディアタイプのエラーの例
この例は、サポートされていないメディアタイプのエラーで応答する方法を示しています。このエラータイプを使用して、要求のコンテンツタイプがサポートされていないことを示します。
/**
* 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);
サービスエラーの例
この例は、一般的なサービスエラーで応答する方法を示しています。ServiceError オブジェクトを使用すると、ステータスコード、メッセージ、およびエラーの詳細を定義できます。事前定義されたエラータイプがニーズを満たさない場合は、ServiceError を使用します。
/**
* 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);
スクリプト化済み REST リソーススクリプトの例
/**
* 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);要求
| JSON 要求 | XML 要求 |
|---|---|
|
|
応答
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"}}