動機
AWS API Gateway を触る機会があったので、メモする。REST API と HTTP API の機能比較を簡単にまとめる。
REST API と HTTP API の概要
よくある質問から抜粋した内容を下記に記載する。
HTTP API は次のような場合に適しています。
- AWS Lambda または HTTP エンドポイント用のプロキシ API を構築する
- OIDC および OAuth2 の認証を備えた最新の API を構築する
- 非常に大規模になる可能性があるワークロード
- レイテンシーに敏感なワークロード用の API
REST API は次のような場合に適しています。
- API の構築、管理、公開に必要なすべての機能が含まれているセットに対して単一価格の支払いを希望されるお客様。
HTTP API は REST API と比較して機能を絞っている分、低レイテンシー低コストをウリとしているらしい。レイテンシーの差異について解説しているドキュメントは見つけられなかったが、料金については Amazon API Gateway の料金に記載があり、単純計算で HTTP API の場合 REST API の約1/3のコストとなるようだ。
REST API と HTTP API の比較
基本的な機能比較はChoosing Between HTTP APIs and REST APIsに書いてある。その他、気になった点について記載する。
レスポンステンプレート
-
REST API
レスポンステンプレート(Gateway Response)が提供されており、レスポンス構造のカスタマイズができる。 -
HTTP API
テンプレートが提供されていないので変更することはできない。例えば認証に失敗した場合に返すJSONオブジェクトのキーはデフォルトの値から変更できず、下記のようになる。
{ "message": "Missing Authentication Token" }
バックエンドに設定できるHTTPエンドポイント
REST API は VPC LinkによりVPC内にあるプライベートなHTTPエンドポイントへのリクエストを可能にする。Set up API Gateway Private Integrations
HTTP API でもつい数日前にβ版が取れ、REST API と同機能を利用できるようになったらしい。試してはいない。Working with VPC Links for HTTP APIs
その他
ドキュメント内容に差分があり、多少混乱した。日本版ドキュメントは更新が遅いようなので参考程度に留めておくべき。
所感
REST API と HTTP APIの機能差分はより細かくあるはずなので、随時更新したい。