HttpRequestData - スコープ指定
HttpRequestData API は、署名を適用してエンドポイントに送信する前に、REST 要求をビルドおよび操作するメソッドを提供します。
- HttpRequestData:API 要求をビルドします。
- AuthCredential:認証情報オブジェクトを作成するか、既存の認証情報オブジェクトを更新します。認証情報を使用して、 RequestAuthAPI クラスを介して要求に署名します。
- RequestAuthAPI:要求に署名し、HttpRequestAuthedData オブジェクトを返します。
- HttpRequestAuthedData:署名された要求に関する情報を取得します。
- GlideHTTPRequest:署名された要求を送信します。
これらの API を使用する前に、要求に署名する 認証アルゴリズムを構成 し、要求の認証に使用する認証情報に関連付ける必要があります。
この API は、 sn_auth 名前空間識別子を持つスコープ付きスクリプトで使用します。このクラスは、コンストラクターを使用してインスタンス化することも、RequestAuthAPI クラスの getHttpRequestData() メソッドから HttpRequestData オブジェクトを返すこともできます。
HttpRequestData:HttpRequestData()
HttpRequestData オブジェクトをインスタンス化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
var httpRequestData = new sn_auth.HttpRequestData();
HttpRequestData - addHeader(文字列キー文字列値)
HttpRequestData オブジェクトにヘッダーを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | HTTP ヘッダーの名前。 |
| 値 | 文字列 | HTTP ヘッダーの値。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、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 オブジェクトに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | クエリパラメーターの名前。 |
| 値 | 文字列 | クエリパラメーターの値。 |
| タイプ | 説明 |
|---|---|
| なし |
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 オブジェクトからヘッダーを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | 削除する HTTP ヘッダーの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
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_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 ステップに関連付けられた接続および資格情報エイリアスに設定された接続属性の値を返します。
var httpRequestData = new sn_auth.HttpRequestData();
gs.info("API Version is: " + httpRequestData.getConnectionExtendedAttribute('api_version'));
HttpRequestData - getContent()
要求の内容を HttpRequestData オブジェクトで返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 要求のコンテンツ。 |
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()
要求が署名された日付を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 番号 | 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 を使用して、署名をクエリパラメーターとして適用できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 署名をヘッダーに適用するか、クエリパラメーターとして適用するか。 次の値が含まれます。
|
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()
要求のエンドポイントセットを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 要求に設定されたエンドポイント。 |
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 秒を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 番号 | 署名の有効期限が切れるまでの時間。 単位:秒 |
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 ヘッダーに関連付けられた値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | HTTP ヘッダーの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された 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()
要求に含まれるヘッダーを含むオブジェクトを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求に関連付けられているすべてのヘッダーを定義するキーと値のペア。 各キーと値のペアには、次の部分が含まれています。
|
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()
要求で使用されるホストを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 要求で使用されるホスト。 |
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 メソッドを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 要求で使用される 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(文字列キー)
指定されたクエリパラメーターの値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | 値を取得するクエリパラメーターの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | クエリパラメーターの値。 |
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()
要求に含まれるクエリパラメーターを含むオブジェクトを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求に関連付けられたクエリパラメーターを定義するキーと値のペア。 各キーと値のペアには、次の部分が含まれています。
|
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()
署名で使用される要求のリージョンを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | リージョンの名前。 |
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()
要求で定義されたサービスを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 要求で定義されたサービス。 |
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(文字列コンテンツ)
要求で送信するコンテンツを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| コンテンツ | 文字列 | 要求で送信するコンテンツ。 |
| タイプ | 説明 |
|---|---|
| なし |
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(数値日付)
署名に使用される要求の日付を定義します。
この方法は、署名がタイムスタンプに基づいて正しく作成されているかどうかをテストする場合にのみ使用します。本番環境では、署名要求は署名を生成した時刻を使用します。この値を手動で設定すると、署名要求が失敗する可能性があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | 番号 | 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');
httpRequestData.setDate(1349333576093);
HttpRequestData - setDirective(文字列ディレクティブ)
ヘッダー内の要求に署名を適用するか、クエリパラメーターとして署名を適用するかを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ディレクティブ | 文字列 | 署名をヘッダーに適用するか、クエリパラメーターとして適用するか。 次の値が含まれます。
デフォルト:header |
| タイプ | 説明 |
|---|---|
| なし |
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 | 文字列 | 要求を送信するエンドポイント。エンドポイントには、クエリパラメーター、パス、およびバージョンを含めることができます。 |
| タイプ | 説明 |
|---|---|
| なし |
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 秒を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 有効期限 | 番号 | 署名の有効期限が切れるまでの時間。 単位:秒 |
| タイプ | 説明 |
|---|---|
| なし |
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)
要求で使用されるホストを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| host | 文字列 | HTTP 要求ホストの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
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 メソッドを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| httpMethod | 文字列 | 要求で使用する 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');
HttpRequestData - setRegion(文字列リージョン)
署名の要求に使用するリージョンを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| リージョン | 文字列 | 要求の署名に使用するリージョン。使用可能な値は、サードパーティ API の要件によって決まります。 |
| タイプ | 説明 |
|---|---|
| なし |
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(文字列サービス)
要求のサービスを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| サービス | 文字列 | 要求のサービス。 |
| タイプ | 説明 |
|---|---|
| なし |
var endpoint= "https://s3.amazonaws.com";
var httpRequestData = new sn_auth.HttpRequestData();
httpRequestData.setEndpoint(endpoint);
httpRequestData.setService('s3');