RESTAPIRequestBody:スコープ指定、グローバル
RESTAPIRequestBody API は、スクリプト内のスクリプト化された REST API 要求の本文コンテンツにアクセスできるようにするメソッドを提供します。
RESTAPIRequestBody オブジェクトの形式は、要求の content-type ヘッダー値に応じて JSON または XML になります。
注:
このタイプのオブジェクトはインスタンス化できません。このタイプのオブジェクトは自動的に作成され、スクリプト化された REST API リソーススクリプトでのみアクセスできます。
この API は sn_ws 名前空間で実行されます。
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:データ
要求本文の内容。
注:
REST Web サービスは、ストリームを介してデータ、データストリーム、および dataString を消費します。ストリームは 1 回しか消費されないため、呼び出すことができるのは 1 つのみです。たとえば、data と dataString の両方を呼び出す場合、2 番目の呼び出しは空を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| データ | オブジェクトまたはアレイ | 要求コンテンツ。これは、要求に応じて単一のオブジェクトまたはオブジェクトのアレイにすることができます。 |
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:データストリーム
ストリームとしての要求本文のコンテンツ。
注:
REST Web サービスは、ストリームを介してデータ、データストリーム、および dataString を消費します。ストリームは 1 回しか消費されないため、呼び出すことができるのは 1 つのみです。たとえば、data と dataString の両方を呼び出す場合、2 番目の呼び出しは空を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| データストリーム | オブジェクト | 要求本文の内容。要求から添付ファイルを作成したり、要求を別のエンドポイントに転送したりするなど、ストリームを別の API に渡すことができます。 |
var requestBody = request.body;
var requestStream = requestBody.dataStream;
RESTAPIRequestBody:dataString
要求本文の内容 (文字列)。
注:
REST Web サービスは、ストリームを介してデータ、データストリーム、および dataString を消費します。ストリームは 1 回しか消費されないため、呼び出すことができるのは 1 つのみです。たとえば、data と dataString の両方を呼び出す場合、2 番目の呼び出しは空を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| データ文字列 | 文字列 | 要求本文の内容。 |
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.
この例では、nextEntry() で hasNext() を使用する方法を示しています。
var requestBody = request.body;
while(requestBody.hasNext()){
var entry = requestBody.nextEntry();
}