HttpRequestData - スコープ指定

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:29分
  • HttpRequestData API は、署名を適用してエンドポイントに送信する前に、REST 要求をビルドおよび操作するメソッドを提供します。

    これらの API を次の順序で使用して、送信署名要求を生成します。
    1. HttpRequestData:API 要求をビルドします。
    2. AuthCredential:認証情報オブジェクトを作成するか、既存の認証情報オブジェクトを更新します。認証情報を使用して、 RequestAuthAPI クラスを介して要求に署名します。
    3. RequestAuthAPI:要求に署名し、HttpRequestAuthedData オブジェクトを返します。
    4. HttpRequestAuthedData:署名された要求に関する情報を取得します。
    5. GlideHTTPRequest:署名された要求を送信します。

    これらの API を使用する前に、要求に署名する 認証アルゴリズムを構成 し、要求の認証に使用する認証情報に関連付ける必要があります。

    この API は、 sn_auth 名前空間識別子を持つスコープ付きスクリプトで使用します。このクラスは、コンストラクターを使用してインスタンス化することも、RequestAuthAPI クラスの getHttpRequestData() メソッドから HttpRequestData オブジェクトを返すこともできます。

    HttpRequestData:HttpRequestData()

    HttpRequestData オブジェクトをインスタンス化します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    var httpRequestData = new sn_auth.HttpRequestData();

    HttpRequestData - addHeader(文字列キー文字列値)

    HttpRequestData オブジェクトにヘッダーを追加します。

    表 : 2. パラメーター
    名前 タイプ 説明
    キー 文字列 HTTP ヘッダーの名前。
    文字列 HTTP ヘッダーの値。
    表 : 3. 戻り値
    タイプ 説明
    なし

    この例では、REST 要求ペイロードを作成します。

    var endpoint= "https://s3.amazonaws.com";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod("PUT");
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl', 'public-read' );

    HttpRequestData - addQueryParam(文字列キー, 文字列値)

    クエリパラメーターを HttpRequestData オブジェクトに追加します。

    表 : 4. パラメーター
    名前 タイプ 説明
    キー 文字列 クエリパラメーターの名前。
    文字列 クエリパラメーターの値。
    表 : 5. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addQueryParam('api_version', 'v2 );
    ​

    HttpRequestData - deleteHeader(文字列キー)

    HttpRequestData オブジェクトからヘッダーを削除します。

    表 : 6. パラメーター
    名前 タイプ 説明
    キー 文字列 削除する HTTP ヘッダーの名前。
    表 : 7. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://s3.amazonaws.com";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.deleteHeader('x-amz-acl');

    HttpRequestData - getConnectionAliasID()

    統合ハブ REST ステップに関連付けられた接続および資格情報エイリアスのsys_idを返します。

    sys_idを ConnectionInfoProvider API に渡して、接続に関する情報を取得できます。
    注:
    このメソッドは、 統合ハブ REST ステップでのみ使用できます。詳細については、「 REST ステップ」を参照してください
    表 : 8. パラメーター
    名前 タイプ 説明
    なし
    表 : 9. 戻り値
    タイプ 説明
    文字列 要求に関連付けられた接続および資格情報エイリアス [sys_alias] テーブルのエイリアスレコードのSys_id。
    var httpRequestData = new sn_auth.HttpRequestData();
    var id = httpRequestData.getConnectionAliasID();
     
    var credential = new sn_cc.ConnectionInfoProvider().
    var connectionInfo = credential.getConnectionInfo(id);

    HttpRequestData - getConnectionExtendedAttribute(文字列名)

    REST ステップに関連付けられた接続および資格情報エイリアスに関連付けられ 統合ハブ 接続属性の値を返します。

    注:
    このメソッドは、 統合ハブ REST ステップでのみ使用できます。詳細については、「 REST ステップ」を参照してください

    接続属性の詳細については、次を参照してください。 統合ハブの接続属性の作成 .

    表 : 10. パラメーター
    名前 タイプ 説明
    名前 文字列 接続属性の名前。
    表 : 11. 戻り値
    タイプ 説明
    文字列 接続属性の値。

    この例では、REST ステップに関連付けられた接続および資格情報エイリアスに設定された接続属性の値を返します。

    var httpRequestData = new sn_auth.HttpRequestData();​
    gs.info("API Version is: " + httpRequestData.getConnectionExtendedAttribute('api_version'));

    HttpRequestData - getContent()

    要求の内容を HttpRequestData オブジェクトで返します。

    表 : 12. パラメーター
    名前 タイプ 説明
    なし
    表 : 13. 戻り値
    タイプ 説明
    文字列 要求のコンテンツ。
    var endpoint= "https://s3.amazonaws.com";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl' , 'public-read' );
    var ct = httpRequestData.getContent();

    出力:

    Action=SendMessage&MessageBody=This is a test message

    HttpRequestData - getDate()

    要求が署名された日付を返します。

    表 : 14. パラメーター
    名前 タイプ 説明
    なし
    表 : 15. 戻り値
    タイプ 説明
    番号 1970 年 1 月 1 日 (UTC) と要求が署名されたときの差。

    単位:ミリ秒

    var endpoint= "https://s3.amazonaws.com";​
    var httpRequestData = new sn_auth.HttpRequestData();​
    httpRequestData.setEndpoint(endpoint);​
    httpRequestData.addQueryParam("list-type", "2");​
    httpRequestData.setService('s3');​
    httpRequestData.setHttpMethod('get');​
    
    gs.info( "Date: " + httpRequestData.getDate());

    出力:

    Date: 1349333576093

    HttpRequestData - getDirective()

    署名がヘッダーの要求に適用されるか、クエリパラメーターとして適用されるかを返します。

    デフォルトでは、署名はヘッダーに適用されます。setDirective() API を使用して、署名をクエリパラメーターとして適用できます。

    表 : 16. パラメーター
    名前 タイプ 説明
    なし
    表 : 17. 戻り値
    タイプ 説明
    文字列 署名をヘッダーに適用するか、クエリパラメーターとして適用するか。

    次の値が含まれます。

    • HEADER:署名が要求ヘッダーに適用されます。
    • QUERY:署名はクエリパラメーターとして適用されます。
    var endpoint= "https://s3.amazonaws.com";​
    var httpRequestData = new sn_auth.HttpRequestData();​
    httpRequestData.setEndpoint(endpoint);​
    httpRequestData.addQueryParam("list-type", "2");​
    httpRequestData.setService('s3');​
    httpRequestData.setHttpMethod('get');​
    
    gs.info( "Signature applied to: " + httpRequestData.getDirective() );

    出力:

    Signature applied to: HEADER

    HttpRequestData - getEndpoint()

    要求のエンドポイントセットを返します。

    表 : 18. パラメーター
    名前 タイプ 説明
    なし
    表 : 19. 戻り値
    タイプ 説明
    文字列 要求に設定されたエンドポイント。
    var endpoint= "https://s3.amazonaws.com";​
    var httpRequestData = new sn_auth.HttpRequestData();​
    httpRequestData.setEndpoint(endpoint);​
    httpRequestData.addQueryParam("list-type", "2");​
    httpRequestData.setService('s3');​
    httpRequestData.setHttpMethod('get');​
    httpRequestData.setDirective("query");​
    ​
    gs.info( "Endpoint is: " + httpRequestData.getEndpoint() );

    出力:

    Endpoint is: https://s3.amazonaws.com

    HttpRequestData:getExpiry()

    RequestAuthAPI クラスの generateAuth() メソッドを使用して要求が署名された時点から、署名の有効期限が切れるまでの時間を秒単位で返します。

    有効期限は通常、要求を送信するサードパーティサービスによって設定され、 setExpiry() メソッドによって設定された値が上書きされます。たとえば、サードパーティサービスによって有効期限が 900 秒に設定されており、 setExpiry() メソッドを使用して有効期限を 300 秒に設定した場合、 getExpiry() メソッドは 900 秒を返します。

    表 : 20. パラメーター
    名前 タイプ 説明
    なし
    表 : 21. 戻り値
    タイプ 説明
    番号 署名の有効期限が切れるまでの時間。

    単位:秒

    var endpoint= "https://s3.amazonaws.com";​
    var httpRequestData = new sn_auth.HttpRequestData();​
    httpRequestData.setEndpoint(endpoint);​
    httpRequestData.addQueryParam("list-type", "2");​
    httpRequestData.setService('s3');​
    httpRequestData.setHttpMethod('get');​
    httpRequestData.setDirective("query");​
    httpRequestData.setExpiry(300);
    
    gs.info("Signature expires in: " + httpRequestData.getExpiry());

    出力:

    Signature expires in: 300

    HttpRequestData - getHeader(文字列キー)

    指定された HTTP ヘッダーに関連付けられた値を返します。

    表 : 22. パラメーター
    名前 タイプ 説明
    キー 文字列 HTTP ヘッダーの名前。
    表 : 23. 戻り値
    タイプ 説明
    文字列 指定された HTTP ヘッダーの値。
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl', 'public-read' );
    ​
    
    gs.info( "Header value is: " + httpRequestData.getHeader('x-amz-acl') );

    出力:

    Header value is: public-read

    HttpRequestData - getHeaderMap()

    要求に含まれるヘッダーを含むオブジェクトを返します。

    表 : 24. パラメーター
    名前 タイプ 説明
    なし
    表 : 25. 戻り値
    タイプ 説明
    オブジェクト 要求に関連付けられているすべてのヘッダーを定義するキーと値のペア。

    各キーと値のペアには、次の部分が含まれています。

    • キー:文字列。ヘッダーの名前。
    • 値:文字列。ヘッダーの値。
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl', 'public-read' );
    httpRequestData.addHeader('content-type', 'application/json' );
    
    var map = httpRequestData.getHeaderMap();
    
    for(var x in map) {
        var y = map[x]
    
        gs.info(x, y);
    }

    出力:

    *** Script: x-amz-acl
    *** Script: content-type

    HttpRequestData - getHost()

    要求で使用されるホストを返します。

    表 : 26. パラメーター
    名前 タイプ 説明
    なし
    表 : 27. 戻り値
    タイプ 説明
    文字列 要求で使用されるホスト。
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setHost('myHost')
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl' , 'public-read' );
    
    gs.info("Host is: " + httpRequestData.getHost());

    出力:

    Host is: myHost

    HttpRequestData - getHttpMethod()

    要求で使用される HTTP メソッドを返します。

    表 : 28. パラメーター
    名前 タイプ 説明
    なし
    表 : 29. 戻り値
    タイプ 説明
    文字列 要求で使用される HTTP メソッド。
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl', 'public-read' );
    ​
    
    gs.info("HTTP method is: " + httpRequestData.getHttpMethod());

    出力:

    HTTP method is: PUT

    HttpRequestData - getQueryParam(文字列キー)

    指定されたクエリパラメーターの値を返します。

    表 : 30. パラメーター
    名前 タイプ 説明
    キー 文字列 値を取得するクエリパラメーターの名前。
    表 : 31. 戻り値
    タイプ 説明
    文字列 クエリパラメーターの値。
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addQueryParam('api_version', 'v2' );
    
    gs.info("API version is: " + httpRequestData.getQueryParam('api_version'));

    出力:

    API version is: v2

    HttpRequestData - getQueryParamMap()

    要求に含まれるクエリパラメーターを含むオブジェクトを返します。

    表 : 32. パラメーター
    名前 タイプ 説明
    なし
    表 : 33. 戻り値
    タイプ 説明
    オブジェクト 要求に関連付けられたクエリパラメーターを定義するキーと値のペア。

    各キーと値のペアには、次の部分が含まれています。

    • キー:文字列。クエリパラメーターの名前。
    • 値:文字列。クエリパラメーターの値。
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addQueryParam('api_version', 'v2' );
    httpRequestData.addQueryParam('limit', '1000' );
    httpRequestData.addQueryParam('offset', '1' );
    
    
    var map = httpRequestData.getQueryParamMap();
    gs.info("api_version is: " + map['api_version']);

    出力:

    api_version is: v2

    HttpRequestData:getRegion()

    署名で使用される要求のリージョンを返します。

    表 : 34. パラメーター
    名前 タイプ 説明
    なし
    表 : 35. 戻り値
    タイプ 説明
    文字列 リージョンの名前。
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    
    gs.info("Region is: " + httpRequestData.getRegion());

    出力:

    Region is: us-east-1

    HttpRequestData - getService()

    要求で定義されたサービスを返します。

    表 : 36. パラメーター
    名前 タイプ 説明
    なし
    表 : 37. 戻り値
    タイプ 説明
    文字列 要求で定義されたサービス。
    var endpoint= "https://s3.amazonaws.com";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    
    gs.info("Service is: " + httpRequestData.getService());

    出力:

    Service is: s3

    HttpRequestData - setContent(文字列コンテンツ)

    要求で送信するコンテンツを定義します。

    注:
    このメソッドは、スクリプトインクルードまたは MID サーバースクリプトではサポートされていません。
    表 : 38. パラメーター
    名前 タイプ 説明
    コンテンツ 文字列 要求で送信するコンテンツ。
    表 : 39. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://s3.amazonaws.com";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "This is a test message";
    httpRequestData.setContent(content);

    HttpRequestData - setDate(数値日付)

    署名に使用される要求の日付を定義します。

    この方法は、署名がタイムスタンプに基づいて正しく作成されているかどうかをテストする場合にのみ使用します。本番環境では、署名要求は署名を生成した時刻を使用します。この値を手動で設定すると、署名要求が失敗する可能性があります。

    表 : 40. パラメーター
    名前 タイプ 説明
    date 番号 1970 年 1 月 1 日 (UTC) と要求の署名に使用された日付の差。

    単位:ミリ秒

    表 : 41. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://s3.amazonaws.com";​
    var httpRequestData = new sn_auth.HttpRequestData();​
    httpRequestData.setEndpoint(endpoint);​
    httpRequestData.addQueryParam("list-type", "2");​
    httpRequestData.setService('s3');​
    httpRequestData.setHttpMethod('get');
    httpRequestData.setDate(1349333576093);

    HttpRequestData - setDirective(文字列ディレクティブ)

    ヘッダー内の要求に署名を適用するか、クエリパラメーターとして署名を適用するかを定義します。

    表 : 42. パラメーター
    名前 タイプ 説明
    ディレクティブ 文字列 署名をヘッダーに適用するか、クエリパラメーターとして適用するか。

    次の値が含まれます。

    • query:署名をクエリパラメーターとして適用します。
    • header:要求ヘッダーに署名を適用します。

    デフォルト:header

    表 : 43. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://s3.amazonaws.com";​
    var httpRequestData = new sn_auth.HttpRequestData();​
    httpRequestData.setEndpoint(endpoint);​
    httpRequestData.addQueryParam("list-type", "2");​
    httpRequestData.setService('s3');​
    httpRequestData.setHttpMethod('get');​
    httpRequestData.setDirective("query");​

    HttpRequestData - setEndpoint(文字列エンドポイント)

    要求を送信するエンドポイントを定義します。

    表 : 44. パラメーター
    名前 タイプ 説明
    endpoint 文字列 要求を送信するエンドポイント。エンドポイントには、クエリパラメーター、パス、およびバージョンを含めることができます。
    表 : 45. 戻り値
    タイプ 説明
    なし
    var endpoint="https://third-party-endpoint/path-parameters/version";
    
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    

    HttpRequestData - setExpiry(数値の有効期限)

    RequestAuthAPI クラスの generateAuth() メソッドを使用して要求が署名されたときに開始される、署名の有効期限までの時間を設定します。

    有効期限は通常、要求を送信するサードパーティサービスによって設定され、 setExpiry() メソッドによって設定された値が上書きされます。たとえば、サードパーティサービスによって有効期限が 900 秒に設定されており、 setExpiry() メソッドを使用して有効期限を 300 秒に設定した場合、 getExpiry() メソッドは 900 秒を返します。

    表 : 46. パラメーター
    名前 タイプ 説明
    有効期限 番号 署名の有効期限が切れるまでの時間。

    単位:秒

    表 : 47. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://s3.amazonaws.com";​
    var httpRequestData = new sn_auth.HttpRequestData();​
    httpRequestData.setEndpoint(endpoint);​
    httpRequestData.addQueryParam("list-type", "2");​
    httpRequestData.setService('s3');​
    httpRequestData.setHttpMethod('get');​
    httpRequestData.setExpiry(300);​

    HttpRequestData - setHost(文字列 host)

    要求で使用されるホストを定義します。

    表 : 48. パラメーター
    名前 タイプ 説明
    host 文字列 HTTP 要求ホストの名前。
    表 : 49. 戻り値
    タイプ 説明
    なし
    var endpoint= "https:third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setHost('myHost')
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl', 'public-read' );

    HttpRequestData - setHttpMethod(文字列 httpMethod)

    要求で使用する HTTP メソッドを設定します。

    表 : 50. パラメーター
    名前 タイプ 説明
    httpMethod 文字列 要求で使用する HTTP メソッド。
    表 : 51. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');

    HttpRequestData - setRegion(文字列リージョン)

    署名の要求に使用するリージョンを定義します。

    表 : 52. パラメーター
    名前 タイプ 説明
    リージョン 文字列 要求の署名に使用するリージョン。使用可能な値は、サードパーティ API の要件によって決まります。
    表 : 53. 戻り値
    タイプ 説明
    なし
    var endpoint= "https:third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod('put');
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);

    HttpRequestData - setService(文字列サービス)

    要求のサービスを定義します。

    表 : 54. パラメーター
    名前 タイプ 説明
    サービス 文字列 要求のサービス。
    表 : 55. 戻り値
    タイプ 説明
    なし
    var endpoint= "https://s3.amazonaws.com";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');