在 API Gateway 中調用 REST API - Amazon API Gateway

在 API Gateway 中調用 REST API

若要呼叫已部署的 API,用戶端會將請求提交至 API Gateway 元件服務的 URL 以執行 API (也稱為 execute-api)。

REST API 的基本 URL 格式如下所示:

https://api-id.execute-api.region.amazonaws.com/stage/

其中 api-id 是 API 識別碼,region 是 AWS 區域,而 stage 是 API 部署的階段名稱。

重要

在您可以叫用 API 之前,您必須先在 API Gateway 中部署 API。如需有關部署 API 的指示,請參閱在 API Gateway 中部署 REST API

取得 API 的調用 URL

您可以使用主控台 AWS CLI,或匯出的 OpenAPI 定義來取得 API 的調用 URL。

使用主控台取得 API 的調用 URL

下列程序顯示如何在 REST API 主控台取得 API 的調用 URL。

使用 REST API 主控台取得 API 的調用 URL
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇部署的 API。

  3. 從主導覽窗格選擇階段

  4. 階段詳細資訊下,選擇複製圖示以複製 API 的調用 URL。

    此 URL 適用於 API 的根資源。

    在建立 REST API 之後,主控台會顯示 API 的調用 URL。
  5. 若要取得 API 中另一個資源的 API 調用 URL,請展開次要導覽窗格下的階段,然後選擇某個方法。

  6. 選擇複製圖示以複製 API 的資源層級調用 URL。

    REST API 的資源層級 URL 位於階段的次要導覽窗格下。

使用 AWS CLI 取得 API 的調用 URL

下列程序顯示如何使用 AWS CLI 取得 API 的調用 URL。

使用 AWS CLI 取得 API 的調用 URL
  1. 使用下列命令以取得 rest-api-id。此命令會傳回您區域中的所有 rest-api-id 值。如需詳細資訊,請參閱 get-rest-apis

    aws apigateway get-rest-apis
  2. 將範例 rest-api-id 取代為您的 rest-api-id,將範例 {stage-name} 取代為您的 {stage-name},並將 {region} 取代為您的區域。

    https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/
使用 API 的匯出 OpenAPI 定義檔以取得 API 的調用 URL

您也可以合併 API 之已匯出 OpenAPI 定義檔的 hostbasePath 欄位,藉以建構根 URL。如需有關如何匯出 API 的指示,請參閱 從 API Gateway 匯出 REST API

呼叫 API

您可以使用瀏覽器、curl 或其他應用程式 (例如 Postman) 呼叫已部署的 API。

此外,您可以使用 API Gateway 主控台來測試 API 呼叫。測試時會使用 API Gateway 的 TestInvoke 功能,其允許在部署 API 之前進行 API 測試。如需詳細資訊,請參閱 使用 API Gateway 主控台來測試 REST API 方法

注意

引動過程 URL 中的查詢字串參數值不能包含 %%

使用 Web 瀏覽器調用 API

如果您的 API 允許匿名存取,您可以使用任何 Web 瀏覽器來調用任何 GET 方法。在瀏覽器的位址列中輸入完整的調用 URL。

對於其他方法或任何需要驗證的呼叫,您必須指定承載或簽署請求。您可以使用其中一個 AWS 軟體開發套件,在 HTML 頁面或用戶端應用程式後方的指令碼中處理這些作業。

使用 curl 調用 API

您可以使用終端機中的 curl 等工具來呼叫 API。下列範例 curl 命令會在 API prod 階段的 getUsers 資源上調用 GET 方法。

Linux or Macintosh
curl -X GET 'https://b123abcde4.execute-api.us-west-2.amazonaws.com/prod/getUsers'
Windows
curl -X GET "https://b123abcde4.execute-api.us-west-2.amazonaws.com/prod/getUsers"