HTTP 対応のリゾルバーのマッピングテンプレートリファレンス - AWS AppSync

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

HTTP 対応のリゾルバーのマッピングテンプレートリファレンス

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": string }, "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": "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

パラメータフィールド

リクエストマッピングテンプレートのみ

検索実行時のアクションを指定するために使用され、一般に、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"