HttpRequestData - スコープ指定

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間: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(文字列 key, 文字列 value)

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

    表 : 2. パラメーター
    名前 タイプ 説明
    key 文字列 HTTP ヘッダーの名前。
    value 文字列 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(文字列 key, 文字列 value)

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

    表 : 4. パラメーター
    名前 タイプ 説明
    key 文字列 クエリーパラメーターの名前。
    value 文字列 クエリーパラメーターの値。
    表 : 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(文字列 key)

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

    表 : 6. パラメーター
    名前 タイプ 説明
    key 文字列 削除する 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(文字列 name)

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

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

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

    表 : 10. パラメータ
    名前 タイプ 説明
    name 文字列 接続属性の名前。
    表 : 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(文字列 key)

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

    表 : 22. パラメーター
    名前 タイプ 説明
    key 文字列 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(文字列 key)

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

    表 : 30. パラメーター
    名前 タイプ 説明
    key 文字列 値を取得するクエリーパラメーターの名前。
    表 : 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(文字列 content)

    要求で送信する内容を定義します。

    注:
    このメソッドは、スクリプトインクルードと MID Server スクリプトではサポートされていません。
    表 : 38. パラメーター
    名前 タイプ 説明
    content 文字列 要求で送信する内容。
    表 : 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(文字列 directive)

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

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

    次の値が含まれます。

    • 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(文字列 endpoint)

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

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

    HttpRequestData - setExpiry(数字 expiry)

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

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

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

    単位:秒

    表 : 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(文字列 region)

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

    表 : 52. パラメーター
    名前 タイプ 説明
    region 文字列 要求の署名に使用するリージョン。使用可能な値は、サードパーティ 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(文字列 service)

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

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