API Gateway 使用案例 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

API Gateway 使用案例

使用 API Gateway 建立 REST API

API Gateway REST API 是由資源和方法構成。資源是應用程式可透過資源路徑存取的邏輯實體。方法會對應至 API 使用者所提交的 REST API 請求,以及使用者所傳回的回應。

例如,/incomes 可以是代表應用程式使用者收入之資源的路徑。資源可以有適當的 HTTP 動詞 (例如 GET、POST、PUT、PATCH 和 DELETE) 所定義的一或多個操作。可識別 API 方法的資源路徑和操作組合。例如,POST /incomes 方法可新增發起人所獲得的收入,而 GET /expenses 方法可查詢發起人所產生的報告費用。

應用程式不必知道在後端存放和擷取所請求資料的位置。在 API Gateway REST API 中,系統會以「方法請求」和「方法回應」封裝前端。API 會使用整合請求整合回應以與後端互動。

例如,使用 DynamoDB 作為後端時,API 開發人員可以設定整合請求,以將傳入的方法請求轉送至選擇的後端。設定項目包含適當 DynamoDB 動作的規格、所需的 IAM 角色和政策,以及所需的輸入資料轉換。後端會將結果傳回 API Gateway 以做為整合回應。

若要將特定 HTTP 狀態碼之適當方法回應的整合回應路由至用戶端,您可以設定整合回應以將所需的回應參數從整合對應至方法。您接著會將後端的輸出資料格式翻譯為前端的輸出資料格式 (必要時)。API Gateway 可讓您定義承載的結構描述或模型,以協助設定內文映射範本。

API Gateway 提供如下 REST API 管理功能:

  • 支援使用 OpenAPI 的 API Gateway 延伸項目來產生軟體開發套件和建立 API 文件

  • HTTP 請求的調節

使用 API Gateway 建立 HTTP API

HTTP API 可讓您建立比 REST API 延遲更低和成本更低的 RESTful API。

您可以使用 HTTP API 將請求傳送到 AWS Lambda 函數或任何可公開路由的 HTTP 端點。

例如,您可以在後端建立與 Lambda 函數整合的 HTTP API。當用戶端呼叫您的 API 時,API Gateway 會將請求傳送到該 Lambda 函數並傳回該函數的回應給用戶端。

HTTP API 支援 OpenID ConnectOAuth 2.0 授權。它們提供跨來源資源共享 (CORS) 和自動部署的內建支援。

如需進一步了解,請參閱在 REST API 與 HTTP API 之間進行選擇

使用 API Gateway 來建立 WebSocket API

在 WebSocket API 中,用戶端和伺服器都可以隨時將訊息傳送給彼此。後端伺服器可以輕鬆地將資料發送至連線的使用者和裝置,進而免除了實作複雜的輪詢機制。

例如,您可以使用 API Gateway WebSocket API 和 AWS Lambda 建置無伺服器應用程式,進而與聊天室中的個別使用者或使用者群組互相收發訊息。或者,您可以根據訊息內容叫用 AWS Lambda、Amazon Kinesis 或 HTTP 端點等後端服務。

您還能利用 API Gateway WebSocket API 建構安全的即時通訊應用程式,無需佈建或管理任何伺服器,即可管理連線或大規模資料交換。針對性使用案例包含即時的應用程式,如下所示:

  • 聊天應用程式

  • 股票行情之類的即時儀表板

  • 即時提醒和通知

API Gateway 提供 WebSocket API 管理功能,如下所示:

  • 對連線和訊息進行監控和調節

  • 使用 AWS X-Ray 來在訊息通過 API 進入後端服務時追蹤訊息

  • 輕鬆整合 HTTP/HTTPS 端點

誰使用 API Gateway?

使用 API Gateway 的開發人員有兩種:API 開發人員和應用程式開發人員。

API 開發人員可建立和部署 API,以在 API Gateway 中啟用所需功能。API 開發人員必須是擁有 API 之 AWS 帳戶中的使用者。

應用程式開發人員建置功能完整的應用程式後,即可叫用 API 開發人員在 API Gateway 中建立的 WebSocket 或 REST API 來呼叫 AWS 服務。

該應用程式開發人員是 API 開發人員的客戶。應用程式開發人員不需要擁有 AWS 帳戶,但前提是 API 不需要 IAM 許可或支援藉由 Amazon Cognito 使用者集區聯合身分支援的第三方聯合身分提供者授權使用者。這類身分提供者包含 Amazon、Amazon Cognito 使用者集區、Facebook 和 Google。

建立和管理 API Gateway API

API 開發人員需要使用名為 apigateway 的 API Gateway 服務元件 (用於管理 API) 來建立、設定和部署 API。

身為 API 開發人員,您可以使用 API Gateway 主控台 (如 API Gateway 入門中所述) 或透過呼叫 API 參考來建立和管理 API。有數種方式可以呼叫此 API。其中包含使用 AWS Command Line Interface (AWS CLI) 或使用 AWS 軟體開發套件。此外,您還可以使用 AWS CloudFormation 範本或 (在 REST API 和 HTTP API 的情形下) 使用 OpenAPI 的 API Gateway 延伸 來建立 API。

如需支援 API Gateway 區域的清單,以及相關聯的控制服務端點,請參閱 Amazon API Gateway 端點和配額

呼叫 API Gateway API

應用程式開發人員可使用名為 execute-api (用於執行 API) 的 API Gateway 服務元件來叫用在 API Gateway 中建立或部署的 API。基礎程式設計實體是透過所建立的 API 所公開。有數種方式可以呼叫這類 API。如需進一步了解,請參閱在 Amazon API Gateway 中叫用 REST API呼叫 WebSocket API