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(文字列 key, 文字列 value)
ヘッダーを HttpRequestData オブジェクトに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | HTTP ヘッダーの名前。 |
| value | 文字列 | 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(文字列 key, 文字列 value)
クエリーパラメーターを HttpRequestData オブジェクトに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | クエリーパラメーターの名前。 |
| value | 文字列 | クエリーパラメーターの値。 |
| タイプ | 説明 |
|---|---|
| なし |
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 オブジェクトから削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | 削除する 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(文字列 name)
統合ハブ REST ステップに関連付けられた接続および資格情報エイリアスに関連付けられた接続属性の値を返します。
接続属性の詳細については、 IntegrationHub の接続属性の作成を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | 接続属性の名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 接続属性の値。 |
この例では、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(文字列 key)
指定された HTTP ヘッダーに関連付けられた値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | 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(文字列 key)
指定されたクエリーパラメーターの値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | 値を取得するクエリーパラメーターの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | クエリーパラメーターの値。 |
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(文字列 content)
要求で送信する内容を定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| content | 文字列 | 要求で送信する内容。 |
| タイプ | 説明 |
|---|---|
| なし |
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(文字列 directive)
署名をヘッダー内の要求に適用するか、クエリーパラメーターとして適用するかを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| directive | 文字列 | 署名をヘッダーに適用するか、クエリーパラメーターとして適用するか。 次の値が含まれます。
デフォルト: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)
要求の送信先のエンドポイントを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| endpoint | 文字列 | 要求の送信先のエンドポイント。エンドポイントには、クエリーパラメーター、パス、およびバージョンを含めることができます。 |
| タイプ | 説明 |
|---|---|
| なし |
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 秒を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| expiry | 数字 | 署名の有効期限が切れるまでの時間。 単位:秒 |
| タイプ | 説明 |
|---|---|
| なし |
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(文字列 region)
要求に署名する際に使用するリージョンを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| region | 文字列 | 要求の署名に使用するリージョン。使用可能な値は、サードパーティ 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(文字列 service)
要求のサービスを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| service | 文字列 | 要求のサービス。 |
| タイプ | 説明 |
|---|---|
| なし |
var endpoint= "https://s3.amazonaws.com";
var httpRequestData = new sn_auth.HttpRequestData();
httpRequestData.setEndpoint(endpoint);
httpRequestData.setService('s3');