隆重推出 Amazon API Gateway 整合功能!

  2016 年 6 月 1 日

 

直接從 SwaggerHub 將您的 API 定義部署到 AWS API Gateway!

過去幾年,基礎架構逐漸轉向無伺服器。基礎架構即服務 (IaaS) 改變了格局,帶來了低成本、靈活性、可擴展性和可靠性。由於無需額外工作來管理和維護服務,因此 SwaggerHub 推出的下一個大型整合功能是與無伺服器 API Gateway 服務進行整合,這也是理所當然的。Amazon API Gateway 就是這樣一種無需介紹的服務。它是一個完全託管的平台,允許使用者以任何規模建置、部署和管理 API。Amazon API Gateway 的重要方面在於,它支援 Swagger 定義格式,用於設計和建置 RESTful API,而您知道,SwaggerHub 就是以 Swagger 為核心! AWS - SH 如果開發人員可以使用可用的最佳工具來設計 API,從 API 模擬到強大的 API 編輯器的動態功能,並將其部署到 AWS API Gateway,同時消除定義和 Lambda 函數之間通常需要的複雜設定,生活可能會更加輕鬆。這就是 SwaggerHub 最新的 Amazon Gateway 整合功能可以派上用場的地方。透過 Amazon Gateway 整合功能,您可以快速自動地將 API 公開在 Amazon Gateway 上供使用。無伺服器部署也得到了妥善處理,SwaggerHub 會從 SwaggerHub 的 Swagger 定義中自動產生 Amazon Lambda 中 API 程式碼的建置區塊!

SwaggerHub 有兩個可用的 API Gateway 整合功能:

  • Amazon API Gateway
  • Amazon API Gateway Lambda 同步

這些整合功能位於 API 的右上角。 管理整合

Amazon API Gateway

Amazon API Gateway 允許使用者在代理模式下快速將其 API 部署到 Amazon Gateway,這允許 Amazon API Gateway 處理諸如身份驗證、速率限制等事務。SwaggerHub 將使 Gateway 定義與您的 API 定義保持同步。使用者可以根據自己的需求配置整合功能。可以自訂以下欄位

  • 名稱: 整合功能的名稱,將顯示在 SwaggerHub 中
  • AWS 區域: 支援 AWS Gateway 的區域。請注意,並非列出的所有 AWS 區域都支援 Gateway,請參閱 AWS 文件
  • API ID: 要發佈到的 API 的 ID。如果 AWS Gateway 上不存在符合 API 定義 title 的 ID,則將此欄位留空會在 AWS Gateway 上建立一個新的 ID
  • 發佈模式: 如果 AWS Gateway 上已存在 API,則指定整合功能應合併或覆寫 SwaggerHub 上 API 的變更
  • 基礎路徑模式: API Gateway 有多種方式可以表示資源的路徑,有三個選項用於解譯 basePath 屬性 - 忽略前置分割。可以在這裡找到更多詳細資訊
  • 部署模式: 允許使用者自訂 API 推送到 Gateway 的方式。使用者可以「儲存時推送」或完全停用整合功能。在某些情況下,使用者可能不希望在每次點擊儲存時將 API 推送到 Gateway,這時選擇部署模式中的 永不 會有所幫助。
  • 要代理到的伺服器位址: 這允許使用者將自訂 API 連線到 AWS 服務。
  • AWS 存取金鑰和密碼金鑰: 授權 SwaggerHub 連線到 API Gateway 所需的金鑰。可以在這裡找到更多詳細資訊

API Gateway 設定完成後,現在可以從 SwaggerHub 部署 API 並與 AWS Gateway 同步!

Amazon API Gateway Lambda 同步

AWS Lambda 可協助使用者建置其服務的後端邏輯,而無需管理伺服器的麻煩。Amazon API Gateway 和 Lambda 函數可以很好地協同工作。API Gateway 使 Web 用戶端能夠動態呼叫 Lambda 函數。Lambda 同步整合功能會在 Gateway 上為您完成複雜的配置,這意味著使用者只需擔心應用程式的真正業務價值。可以根據使用者的需求配置整合功能。

  • 名稱: 整合功能的名稱
  • AWS 區域: 支援 AWS Gateway 的區域
  • API ID: 要發佈到的 API 的 ID。如果 AWS Gateway 上不存在符合 Swagger 定義 title 值的 ID,則將此欄位留空會在 AWS Gateway 上建立一個新的 ID
  • 發佈模式: 如果 AWS Gateway 上已存在 API,則指定整合功能應合併或覆寫 SwaggerHub 上 API 的變更
  • 基礎路徑模式: API Gateway 有多種方式可以表示資源的路徑。有三個選項用於解譯 basePath 屬性 - 忽略前置分割。可以在這裡找到更多詳細資訊
  • 部署模式: 允許使用者自訂 API 推送到 Gateway 的方式。使用者可以「儲存時推送」或完全停用整合功能。在某些情況下,使用者可能不希望在每次點擊儲存時將 API 推送到 Gateway,這時選擇部署模式中的 永不 會有所幫助。
  • 用於建立不存在的 Lambda 函數的執行角色: 這會指定 SwaggerHub 應如何建立 Lambda 函數。
  • AWS 存取金鑰和密碼金鑰: 授權 SwaggerHub 連線到 API Gateway 所需的金鑰。可以在這裡找到更多詳細資訊

API Gateway Lambda 設定完成後,現在可以部署 API 設計並與 Amazon Lambda 函數同步。Lambda 函數會根據每個操作中的 operationId 建立並比對。如果您沒有 operationId(在 OpenAPI 規格中為選用),則會為您建立一個。如果存在與 operationId 名稱相同的 lambda 函數,則會使用它,並且不會建立新函數。

其他注意事項

在代理模式和 Lambda 模式下,SwaggerHub 都會為每個操作的 Swagger 定義添加 Amazon 特有的擴展(如果這些擴展不存在的話)。這些擴展會決定 API Gateway 的配置方式。如果 SwaggerHub 發現擴展已存在,則不會修改它們。因此,如果您對定義進行了更改,並且需要更新到 AWS Gateway 的映射,您應該在儲存之前刪除這些擴展。Amazon API Gateway 並不支援 Swagger 定義的所有功能。SwaggerHub 會嘗試在儲存時停用您定義中不受支援的功能,並會在您的定義中將其標記出來。由於 Amazon API Gateway 的功能不斷改進,請參閱 Amazon 文件以獲取限制列表。這兩個整合功能是強大的工具,可讓您使用 AWS API Gateway 以最有效的方式將您的 API 從設計轉變為部署。

要查看實際的整合效果,請觀看這個簡短的螢幕錄影!

立即在 SwaggerHub 上試用!如果您對新的整合有任何建議,或希望看到您的產品與 SwaggerHub 整合,請在此處提交功能請求:這裡