教學課程:使用 HTTP 非代理整合建立 REST API - Amazon API Gateway

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

教學課程:使用 HTTP 非代理整合建立 REST API

在本教學課程中,您會使用 Amazon API Gateway 主控台從頭開始建立 API。您可以將主控台視為 API 設計工作室,並使用它來限定 API 功能範圍、測試其行為、建立 API,以及分階段部署您的 API。

建立具有 HTTP 自訂整合的 API

本節將逐步引導您建立資源、在資源上公開方法、設定方法來達到所需的 API 行為,以及測試與部署 API。

在此步驟中,您將建立空白 API。在以下步驟中,您會建立資源和方法,以使用非代理 HTTP 整合將 API 連線到 http://petstore-demo-endpoint.execute-api.com/petstore/pets 端點。

若要建立 API
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 如果這是您第一次使用 API Gateway,您會看到服務功能的介紹頁面。在 REST API 下方,選擇 Build (組建)。當 Create Example API (建立範例 API) 快顯出現時,選擇 OK (確定)

    如果這不是第一次使用 API Gateway,請選擇 Create API (建立 API)。在 REST API 下方,選擇組建

  3. 對於API 名稱,輸入 HTTPNonProxyAPI

  4. 描述,請輸入描述。

  5. API 端點類型保持設定為區域

  6. 選擇建立 API

Resources (資源) 樹狀目錄顯示不含任何方法的根資源 (/)。在本練習中,我們將使用 PetStore 網站的 HTTP 自定義集成構建 API(HTTP://petstore-demo-endpoint執行應用程序/寵物店/寵物。) 出於說明目的,我們將創建一個/pets資源作為根的子項,並在此資源上公開 GET 方法,供客戶端從 PetStore 網站中檢索可用的 Pets 項目列表。

建立 /pets 資源
  1. 選取 / 資源,然後選擇建立資源

  2. 代理資源保持關閉。

  3. 資源路徑保持為 /

  4. 針對資源名稱,輸入 pets

  5. CORS (跨來源資源分享) 保持關閉。

  6. 選擇建立資源

在此步驟中,您會在 /pets 資源上建立 GET 方法。GET 方法會與 http://petstore-demo-endpoint.execute-api.com/petstore/pets 網站整合。API 方法的其他選項包括以下項目:

  • POST,主要用來建立子資源。

  • PUT,主要用來更新現有的資源 (也可用來建立子資源,但不建議)。

  • DELETE,用來刪除資源。

  • PATCH,用來更新資源。

  • HEAD,主要用來測試案例。它與 GET 相同,但不會傳回資源顯示方式。

  • OPTIONS,發起人可以使用它來取得目標服務之可用通訊選項的相關資訊。

對於整合請求的 HTTP method (HTTP 方法),您必須選擇後端支援的方法。對於 HTTPMock integration,方法請求與整合請求最好使用相同的 HTTP 動詞。對於其他整合類型,方法請求可能會使用與整合請求不同的 HTTP 動詞。例如,若要呼叫 Lambda 函數,整合請求必須使用 POST 來叫用函數,而方法請求則可根據 Lambda 函數的邏輯來使用任何 HTTP 動詞。

/pets 資源上建立 GET 方法
  1. 選取 /pets 資源。

  2. 選擇建立方法

  3. 針對方法類型,選取 GET

  4. 針對整合類型,選取 HTTP 整合

  5. HTTP 代理整合保持關閉。

  6. 針對 HTTP 方法,選取 GET

  7. 針對端點 URL,輸入 http://petstore-demo-endpoint.execute-api.com/petstore/pets

    該 PetStore 網站允許您在給定頁面上按寵物類型(例如「狗」或「貓」)檢索Pet項目列表。

  8. 針對內容處理,選取傳遞

  9. 選擇 URL 查詢字串參數

    該 PetStore 網站使用typepage查詢字符串參數來接受輸入。您可以將查詢字串參數新增至方法要求,並將它們對應至整合要求的對應查詢字串參數。

  10. 若要新增查詢字串參數,請執行下列動作:

    1. 選擇新增查詢字串

    2. 對於名稱,輸入 type

    3. 必要快取保持關閉。

    重複上述步驟,另外建立名稱為 page 的查詢字串。

  11. 選擇建立方法

用戶端現在可以在提交請求時,提供寵物類型與頁碼作為查詢字串參數。這些輸入參數必須對應至整合的查詢字串參數,才能將輸入值轉寄至後端的 PetStore 網站。

將輸入參數映射至整合請求
  1. 整合請求索引標籤上,於整合請求設定下,選擇編輯

  2. 選擇 URL 查詢字串參數,然後執行下列動作:

    1. 選擇新增查詢字串參數

    2. 針對名稱,輸入 type

    3. 對於映射自,輸入 method.request.querystring.type

    4. 快取保持關閉。

    5. 選擇新增查詢字串參數

    6. 針對名稱,輸入 page

    7. 對於映射自,輸入 method.request.querystring.page

    8. 快取保持關閉。

  3. 選擇儲存

若要測試 API
  1. 選擇測試標籤。您可能需要選擇向右箭頭按鈕才能顯示此索引標籤。

  2. 針對查詢字串,輸入 type=Dog&page=2

  3. 選擇測試

    結果類似如下:

    測試呼叫 GET on Pets 方法結果

    現在測試成功,我們可以部署 API 來公開提供使用。

  4. 選擇部署 API

  5. 針對階段,選取新階段

  6. 針對階段名稱,輸入 Prod

  7. 描述,請輸入描述。

  8. 選擇部署

  9. (選用) 針對階段詳細資訊下的調用 URL,您可以選擇複製圖示以複製 API 的調用 URL。您可以使用此項與 PostmancURL 這類工具搭配,來測試您的 API。

如果您使用開發套件建立用戶端,您可以呼叫開發套件所公開的方法來簽署請求。如需實作詳細資訊,請參閱您選擇的 AWS 軟體開發套件

注意

當您的 API 變更時,您必須重新部署 API,以提供新的或更新的功能,再重新呼叫請求 URL。

(選用) 映射請求參數

對應 API Gateway API 的請求參數

本教學課程說明如何在 API 的方法請求 URL 上建立 {petId} 的路徑參數,以指定項目 ID、將它映射至整合請求 URL 中的 {id} 路徑參數,然後將請求傳送到 HTTP 端點。

注意

如果您輸入大小寫錯誤的字母 (例如輸入小寫字母而非大寫字母),這可能會在稍後的演練中造成錯誤。

步驟 1:建立資源

在此步驟中,您會建立路徑參數為 {petId} 的資源。

建立 {petId} 資源
  1. 選取 /pets 資源,然後選擇建立資源

  2. 代理資源保持關閉。

  3. 針對資源路徑,選取 /pets

  4. 針對資源名稱,輸入 {petId}

    使用大括號 ({ }) 括住 petId,以便顯示 /pets/{petId}

  5. CORS (跨來源資源分享) 保持關閉。

  6. 選擇建立資源

步驟 2:建立及測試方法

在此步驟中,您會建立路徑參數為 {petId}GET 方法。

設定 GET 方法
  1. 選取 /{petId} 資源,然後選擇建立方法

  2. 針對方法類型,選取 GET

  3. 針對整合類型,選取 HTTP 整合

  4. HTTP 代理整合保持關閉。

  5. 針對 HTTP 方法,選取 GET

  6. 針對端點 URL,輸入 http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}

  7. 針對內容處理,選取傳遞

  8. 預設逾時保持開啟。

  9. 選擇建立方法

現在,您會將 {petId} 路徑參數映射至 HTTP 端點中的 {id} 路徑參數。

映射 {petId} 路徑參數
  1. 整合請求索引標籤上,於整合請求設定下,選擇編輯

  2. 選擇 URL 路徑參數

  3. API Gateway 會建立名為 petId 的整合請求路徑參數。這不適用於您的後端。HTTP 端點會使用 {id} 作為路徑參數。將 petId 重新命名為 id

    這會將 petId 的方法請求路徑參數對應到 id 的整合請求路徑參數。

  4. 選擇儲存

現在,請測試該方法。

測試該方法
  1. 選擇測試標籤。您可能需要選擇向右箭頭按鈕才能顯示此索引標籤。

  2. petId路徑下,輸入 4

  3. 選擇測試

    若成功,回應內文會顯示如下:

    { "id": 4, "type": "bird", "price": 999.99 }

步驟 3:部署 API

在此步驟中,將會部署 API,如此您即開始從 API Gateway 主控台之外呼叫 API。

部署 API
  1. 選擇部署 API

  2. 對於階段,選取生產

  3. 描述,請輸入描述。

  4. 選擇部署

步驟 4:測試 API

在此步驟中,您會在 API Gateway 主控台外使用您的 API 存取 HTTP 端點。

  1. 在主導覽窗格中,選擇階段

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

    此 URL 看起來如下:

    https://my-api-id.execute-api.region-id.amazonaws.com/prod
  3. 在新瀏覽器標籤的地址方塊中輸入此 URL,並為此 URL 附加 /pets/4,然後才提交請求。

  4. 瀏覽器會傳回以下內容:

    { "id": 4, "type": "bird", "price": 999.99 }

後續步驟

您可以開啟請求驗證、轉換資料或建立自訂閘道回應,以進一步自訂 API。

若要探索更多自訂 API 的方法,請參閱下列教學課程: