RESTAPIRequestBody - スコープ対象、グローバル
RESTAPIRequestBody API を使用すると、スクリプト内の Scripted REST API 要求の本文のコンテンツにアクセスできます。
RESTAPIRequestBody オブジェクトの形式は、要求のコンテンツタイプのヘッダー値に応じて JSON または XML になります。
注:
このタイプのオブジェクトはインスタンス化できません。このタイプのオブジェクトは自動的に作成され、Scripted REST API リソーススクリプトでのみアクセスできます。
JSON 形式の単一エントリの example-request-body。
{
"name": "user1",
"id": 1234,
"roles": [
{
"name": "admin"
},
{
"name": "itil"
}
]
}JSON 形式の複数エントリの example-request-body。
[{
"name": "user1",
"id": 1234,
"roles": [
{
"name": "admin"
},
{
"name": "itil"
}
]
},{
"name": "user2",
"id":9876,
"roles": [
{
"name":"admin"
}
]
}]RESTAPIRequestBody - data
要求本文のコンテンツ。
注:
REST Web サービスは、ストリームを介して data、datastream、および dataString を使用します。ストリームは 1 回のみ使用されるため、呼び出すことができるのは 1 つのみです。たとえば、data と dataString の両方を呼び出す場合、2 回目の呼び出しは空を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| data | オブジェクトまたはアレイ | 要求コンテンツ。要求に応じて単一のオブジェクトになる場合と、オブジェクトのアレイになる場合があります。 |
var entry;
var id;
var requestBody = request.body;
var requestData = requestBody.data; //May be an array or a single object
if (requestData instanceof Array) {
entry = requestData[0].name; // 'user1'
id = requestData[0].id; // '1234'
} else {
entry = requestData.name; // 'user1'
id = requestData.id; // '1234'
}
RESTAPIRequestBody - dataStream
ストリーム形式での要求本文のコンテンツ。
注:
REST Web サービスは、ストリームを介して data、datastream、および dataString を使用します。ストリームは 1 回のみ使用されるため、呼び出すことができるのは 1 つのみです。たとえば、data と dataString の両方を呼び出す場合、2 回目の呼び出しは空を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| dataStream | オブジェクト | 要求本文のコンテンツ。要求から添付ファイルを作成したり、別のエンドポイントに要求を転送したりするために、ストリームを別の API に渡すことができます。 |
var requestBody = request.body;
var requestStream = requestBody.dataStream;
RESTAPIRequestBody - dataString
文字列形式での要求本文のコンテンツ。
注:
REST Web サービスは、ストリームを介して data、datastream、および dataString を使用します。ストリームは 1 回のみ使用されるため、呼び出すことができるのは 1 つのみです。たとえば、data と dataString の両方を呼び出す場合、2 回目の呼び出しは空を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| dataString | 文字列 | 要求本文のコンテンツ。 |
var requestBody = request.body;
var requestString = requestBody.dataString;
RESTAPIRequestBody - hasNext()
要求本文に追加のエントリーがあるかどうかを判断します。
このメソッドを nextEntry() メソッドと一緒に使用して、複数の要求本文エントリーを反復処理します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 要求本文に追加のエントリーがあるかどうかを示すフラグ。 可能な値:
|
var requestBody = request.body;
requestBody.hasNext(); // returns true if the request contains a single entry or multiple entries
requestBody. nextEntry(); // returns next available entry
//calling second time
requestBody.hasNext(); // returns false if the request contains a single entry, or true if the request contains multiple entries
RESTAPIRequestBody - nextEntry()
要求本文から 1 つのエントリーをスクリプトオブジェクトとして取得します。
このメソッドを hasNext() メソッドと一緒に使用して、複数の要求本文エントリーを反復処理します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求本文からの単一のエントリー。 |
var requestBody = request.body;
var requestEntry = requestBody.nextEntry(); // returns available entry if there is only one entry, or the first entry if there are multiple.
var name = requestEntry.name; // 'user1'
// Calling second time
requestEntry = requestBody.nextEntry(); // returns undefined if there is only one entry, or the second entry if there are multiple.
この例では、hasNext() と nextEntry() を一緒に使用する方法を示します。
var requestBody = request.body;
while(requestBody.hasNext()){
var entry = requestBody.nextEntry();
}