RESTAPIRequestBody:スコープ指定、グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:5分
  • 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 番目の呼び出しは空を返します。
    表 : 1. フィールド
    名前 タイプ 説明
    データ オブジェクトまたはアレイ 要求コンテンツ。これは、要求に応じて単一のオブジェクトまたはオブジェクトのアレイにすることができます。
    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 番目の呼び出しは空を返します。
    表 : 2. フィールド
    名前 タイプ 説明
    データストリーム オブジェクト 要求本文の内容。要求から添付ファイルを作成したり、要求を別のエンドポイントに転送したりするなど、ストリームを別の API に渡すことができます。
    var requestBody = request.body; 
    var requestStream = requestBody.dataStream;

    RESTAPIRequestBody:dataString

    要求本文の内容 (文字列)。

    注:
    REST Web サービスは、ストリームを介してデータ、データストリーム、および dataString を消費します。ストリームは 1 回しか消費されないため、呼び出すことができるのは 1 つのみです。たとえば、data と dataString の両方を呼び出す場合、2 番目の呼び出しは空を返します。
    表 : 3. フィールド
    名前 タイプ 説明
    データ文字列 文字列 要求本文の内容。
    var requestBody = request.body; 
    var requestString = requestBody.dataString;

    RESTAPIRequestBody:hasNext()

    要求本文に追加のエントリがあるかどうかを決定します。

    このメソッドを nextEntry() メソッドとともに使用して、複数の要求本文エントリを反復処理します。

    表 : 4. パラメーター
    名前 タイプ 説明
    なし
    表 : 5. 戻り値
    タイプ 説明
    ブール 要求本文に追加のエントリがあるかどうかを示すフラグ。
    可能な値:
    • true:追加のエントリが利用可能です。nextEntry() が呼び出されると、最後に一致したレコードがロードされるまで hasNext() は true のままになります。
    • false:追加のエントリはありません。
    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() メソッドとともに使用して、複数の要求本文エントリを反復処理します。

    表 : 6. パラメーター
    名前 タイプ 説明
    なし
    表 : 7. 戻り値
    タイプ 説明
    オブジェクト 要求本文からの単一のエントリ。
    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();
    }