$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 {} }