使用 Amazon API Gateway 建立 API

在 AWS 上部署應用程式

Dunieski Otano

Amazon Web Services Solutions Architect

三種用戶端,一個後端

  • Web、行動裝置與合作夥伴都呼叫同一個後端
  • 各自使用略有不同的格式
  • 「前門」會驗證並轉換每個呼叫者

 

三種用戶端透過單一路由的 API Gateway 連向後端服務

在 AWS 上部署應用程式

API Gateway 的功能

API Gateway 作為受管的前門:Web 與行動用戶端經由集中式閘道,具備路由、驗證、節流與轉換功能,連到 Lambda、HTTP 端點與 AWS 服務

  • 你的 API 的全代管前門
  • 處理路由、驗證、節流與轉換
  • 介於用戶端與你的後端之間
  • 後端可為 Lambda、HTTP 端點或 AWS 服務
在 AWS 上部署應用程式

整合型態

  • Lambda proxy:將整個請求傳給 Lambda
  • Lambda non-proxy:你對映請求與回應欄位
  • HTTP:轉送到 HTTP 後端
  • MOCK:無後端就回傳固定回應

四種 API Gateway 整合型態:Lambda proxy 全量傳遞、Lambda non-proxy 使用對映範本、HTTP 轉送到端點、MOCK 回傳靜態回應

在 AWS 上部署應用程式

請求與回應轉換

  • Mapping templates 用 VTL 重塑載荷
  • Velocity Template Language 轉換 body、headers、參數
  • Request mapping:用戶端格式 → 後端格式
  • Response mapping:後端格式 → 用戶端格式

VTL 對映範本流程:用戶端載荷先經請求範本轉換再到後端,後端回應再由回應範本轉為用戶端所需格式

在 AWS 上部署應用程式

請求驗證

請求驗證模式:在呼叫 Lambda 後端前,驗證 body 是否符合 JSON 結構、驗證必要查詢與標頭參數,或同時驗證兩者

  • 在到達後端之前就拒絕不良輸入
  • 必要參數:headers、查詢字串、路徑
  • 模型綱要:驗證 JSON body 結構
  • 可驗證 body、參數,或兩者皆驗證
在 AWS 上部署應用程式

狀態碼與錯誤合約

  • 覆寫後端狀態碼,維持一致的合約
  • 將後端 502 對映為對用戶端友善的 503
  • Gateway responses:自訂錯誤內容
  • 無論後端為何,用戶端都得到可預期的錯誤

完整 API Gateway 請求生命週期:驗證在入口拒絕不良輸入,對映範本重塑有效輸入給後端,回應範本將輸出格式化為一致的用戶端合約

在 AWS 上部署應用程式

整合全流程

  • 用戶端請求 → 驗證 → 轉換 → 後端
  • 不良輸入在入口就被拒絕
  • 合格輸入重塑後送往後端
  • 後端回應再重塑為用戶端合約

完整 API Gateway 請求生命週期:驗證在入口拒絕不良輸入,對映範本重塑有效輸入給後端,回應範本將輸出格式化為一致的用戶端合約

在 AWS 上部署應用程式

一起來練習吧!

在 AWS 上部署應用程式

Preparing Video For Download...