メニュー
Amazon API Gateway
開発者ガイド

API Gateway の単純な電卓の API

Amazon の単純な電卓の API では、3 つのメソッド (GET、POST、GET) を公開して 単純な電卓の Lambda 関数 (Calc) を呼び出します。この API を図に示すと次のようになります。

 生成された SDK の単純な電卓の API

この 3 つのメソッドは方法は異なりますが、バックエンドの Lambda 関数に入力を渡して同じ操作を行います。

  • GET /?a=...&b=...&op=... メソッドは、クエリパラメーターを使用して入力を指定します。

  • POST / メソッドは、{"a":"Number", "b":"Number", "op":"string"} の JSON ペイロードを使用して入力を指定します。

  • GET /{a}/{b}/{op} メソッドは、パスパラメーターを使用して入力を指定します。

API Gateway が定義されていない場合、HTTP メソッドとパス部分を組み合わせて、対応する SDK メソッド名を生成します。ルートパス部分 (/) は Api Root と呼ばれます。たとえば、GET /?a=...&b=...&op=... の API メソッドのデフォルトの Java SDK メソッド名は getABOpPOST / のデフォルトの SDK メソッド名は postApiRootGET /{a}/{b}/{op} のデフォルトの SDK メソッド名は getABOp です。個々の SDK は規則をカスタマイズすることができます。SDK 固有のメソッド名については、生成された SDK ソースのドキュメントを参照してください。

各 API メソッドで operationName プロパティを指定すると、デフォルトの SDK メソッド名を上書きできます。API メソッドを作成する場合や、API Gateway REST API を使用して API メソッドを更新する場合は、これを行うことができます。API Swagger の定義では、同じ結果を得るために operationId を設定できます。

この API に対して API Gateway で生成された SDK を使用してこれらのメソッドを 呼び出す方法を示す前に、メソッドの設定方法を簡単に再確認しましょう。詳細な手順については、「Amazon API Gateway での API の作成」を参照してください。API Gateway を初めて使用する場合は、まず Lambda 統合で API Gateway API を構築する を参照してください。

入力と出力のモデルの作成

SDK で厳密に型指定された入力を指定するには、API の Input モデルを作成します。

同様に、レスポンス本文のデータ型を記述するには、API Gateway で以下のモデルを作成します。

{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "c": {"type":"number"} }, "title": "Output" }

および

{ "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "input":{ "$ref":"https://apigateway.amazonaws.com/restapis/t7dve4zn36/models/Input" }, "output":{ "$ref":"https://apigateway.amazonaws.com/restapis/t7dve4zn36/models/Output" } }, "title":"Result" }

GET / メソッドのクエリパラメーターの設定

GET /?a=..&b=..&op=.. メソッドのクエリパラメーターは [Method Request] で宣言します。

バックエンドへの入力としてペイロードのデータモデルを設定

POST / メソッドについては、Input モデルを作成し、それをメソッドリクエストに追加して入力データの形式を定義します。

API のユーザーは、このモデルを使って Result オブジェクトのプロパティを読み取ることで、正常な出力を解析できます。このモデルがないと、JSON 出力を表すためにディクショナリオブジェクトを作成することが必要になります。

バックエンドからの結果出力のデータモデルの設定

3 つすべてのメソッドで、Result を作成し、それをメソッドの Method Response に追加して Lambda 関数から返される出力の形式を定義します。

API のユーザーは、このモデルを使用して Input オブジェクトをインスタンス化することで、SDK を呼び出して入力を指定できます。このモデルがないと、Lambda 関数への JSON 入力を表すためにディクショナリオブジェクトを作成することが必要になります。

また、Swagger API の定義に従って API を作成して設定することもできます。