AWS AppSync の HTTP 用リゾルバーのマッピングテンプレートリファレンス
注記
現在、主に APPSYNC_JS ランタイムとそのドキュメントをサポートしています。こちらにある APPSYNC_JS ランタイムとそのガイドの使用をご検討ください。
AWS AppSync の HTTP リゾルバーマッピングテンプレートを使用すると、AWS AppSync から HTTP エンドポイントにリクエストを送り、HTTP エンドポイントから AWS AppSync にレスポンスを返すことができます。マッピングテンプレートを使用して、呼び出されるオペレーションの特性に関して、AWS AppSync にヒントを渡すこともできます。このセクションでは、サポートされる HTTP リゾルバーのマッピングテンプレートについて説明します。
リクエストマッピングテンプレート
{ "version": "2018-05-29", "method": "PUT|POST|GET|DELETE|PATCH", "params": { "query": Map, "headers": Map, "body": any }, "resourcePath": string }
HTTP リクエストマッピングテンプレートが解決されると、リクエストマッピングテンプレートの JSON スキーマ表現は以下のようになります。
{ "$id": "https://aws.amazon.com/appsync/request-mapping-template.json", "type": "object", "properties": { "version": { "$id": "/properties/version", "type": "string", "title": "The Version Schema ", "default": "", "examples": [ "2018-05-29" ], "enum": [ "2018-05-29" ] }, "method": { "$id": "/properties/method", "type": "string", "title": "The Method Schema ", "default": "", "examples": [ "PUT|POST|GET|DELETE|PATCH" ], "enum": [ "PUT", "PATCH", "POST", "DELETE", "GET" ] }, "params": { "$id": "/properties/params", "type": "object", "properties": { "query": { "$id": "/properties/params/properties/query", "type": "object" }, "headers": { "$id": "/properties/params/properties/headers", "type": "object" }, "body": { "$id": "/properties/params/properties/body", "type": "string", "title": "The Body Schema ", "default": "", "examples": [ "" ] } } }, "resourcePath": { "$id": "/properties/resourcePath", "type": "string", "title": "The Resourcepath Schema ", "default": "", "examples": [ "" ] } }, "required": [ "version", "method", "resourcePath" ] }
以下は、ボディを text/plain
とする HTTP POST リクエストの例です。
{ "version": "2018-05-29", "method": "POST", "params": { "headers":{ "Content-Type":"text/plain" }, "body":"this is an example of text body" }, "resourcePath": "/" }
Version
注記
これは、リクエストマッピングテンプレートにのみ適用されます。
テンプレートが使用するバージョンを定義します。version
はすべてのリクエストマッピングテンプレートに共通であり、必須です。
"version": "2018-05-29"
[メソッド]
注記
これは、リクエストマッピングテンプレートにのみ適用されます。
HTTP メソッドまたは動作 (GET、POST、PUT、PATCH または DELETE) で AWS AppSync が HTTP エンドポイントに送信します。
"method": "PUT"
ResourcePath
注記
これは、リクエストマッピングテンプレートにのみ適用されます。
アクセス対象のリソースパスです。リソースパスは、HTTP データソースのエンドポイントと、AWS AppSync サービスのリクエスト送信先の URL で構成されます。
"resourcePath": "/v1/users"
マッピングテンプレートが評価されると、このパスは、HTTP エンドポイントが含まれる HTTP リクエストの一部として送信されます。たとえば、前の例では次のように変換される可能性があります。
PUT <endpoint>/v1/users
Params フィールド
注記
これは、リクエストマッピングテンプレートにのみ適用されます。
検索実行時のアクションを指定するために使用され、一般に、query 値を body 内に設定します。ただし、レスポンスのフォーマットなど、他のいくつかの機能を設定できます。
- ヘッダ
-
ヘッダー情報は、キーと値のペアです。キーと値の両方が文字列である必要があります。
例:
"headers" : { "Content-Type" : "application/json" }
現在サポートされている
Content-Type
ヘッダーは以下のとおりです。text/* application/xml application/json application/soap+xml application/x-amz-json-1.0 application/x-amz-json-1.1 application/vnd.api+json application/x-ndjson
注意: 以下の HTTP ヘッダーを設定することはできません。
HOST CONNECTION USER-AGENT EXPECTATION TRANSFER_ENCODING CONTENT_LENGTH
- query
-
一般的なオプション (JSON レスポンスのコードフォーマットなど) を指定するキーと値のペア。キーと値の両方が文字列である必要があります。次の例では、
?type=json
としてクエリ文字列を送信する方法を示しています。"query" : { "type" : "json" }
- body
-
ボディには、設定の際に選択する HTTP リクエストボディが含まれています。リクエストボディは、コンテンツタイプが charset に指定されている場合を除き、常に UTF-8 でエンコードされた文字列です。
"body":"body string"
レスポンス
例を参照してください。こちらへ。