$util.http の HTTP ヘルパー - AWS AppSync GraphQL

$util.http の HTTP ヘルパー

注記

現在、主に APPSYNC_JS ランタイムとそのドキュメントをサポートしています。こちらにある APPSYNC_JS ランタイムとそのガイドの使用をご検討ください。

$util.http ユーティリティには、HTTP リクエストパラメータの管理やレスポンスヘッダーの追加に使用できるヘルパーメソッドが用意されています。

$util.http utils リスト

$util.http.copyHeaders(Map) : Map

以下の制限された HTTP ヘッダーを除き、マップからヘッダーをコピーします。

  • transfer-encoding

  • connection

  • host

  • expect

  • keep-alive

  • upgrade

  • proxy-authenticate

  • proxy-authorization

  • te

  • content-length

このユーティリティを使用して、リクエストヘッダーをダウンストリーム HTTP エンドポイントに転送することができます。

{ ... "params": { ... "headers": $util.http.copyHeaders($ctx.request.headers), ... }, ... }
$util.http.addResponseHeader(String, Object)

レスポンスの名前 (String) と値 (Object) を含むカスタムヘッダーを 1 つ追加します。以下の制限が適用されます。

  • copyHeaders(Map) の制限付きヘッダーのリストに加えて、ヘッダー名は次のいずれかと一致することはできません。

    • Access-Control-Allow-Credentials

    • Access-Control-Allow-Origin

    • Access-Control-Expose-Headers

    • Access-Control-Max-Age

    • Access-Control-Allow-Methods

    • Access-Control-Allow-Headers

    • Vary

    • Content-Type

  • ヘッダー名は、x-amzn-x-amz- などの制限付きプレフィックスで始めることはできません。

  • カスタムレスポンスヘッダーのサイズは 4 KB を超えることはできません。これにはヘッダー名と値が含まれます。

  • 各レスポンスヘッダーは、GraphQL 操作ごとに 1 回定義する必要があります。ただし、同じ名前のカスタムヘッダーを複数回定義すると、最新の定義がレスポンスに表示されます。名前に関係なく、すべてのヘッダーがヘッダーサイズの上限に含まれます。

  • 名前 (String) が空または制限されているヘッダーや null 値 (Object) のヘッダーは無視され、オペレーションの errors 出力に追加される ResponseHeaderError エラーが発生します。

export function request(ctx) { util.http.addResponseHeader('itemsCount', 7) util.http.addResponseHeader('render', ctx.args.render) return {} }
$util.http.addResponseHeaders(Map)

複数のレスポンスヘッダーを、名前 (String) と値 (Object) の指定したマップからのレスポンスに追加します。addResponseHeader(String, Object) メソッドにリストされているのと同じ制限が、このメソッドにも適用されます。

export function request(ctx) { const headers = { headerInt: 12, headerString: 'stringValue', headerObject: { field1: 7, field2: 'string' } } util.http.addResponseHeaders(headers) return {} }