教學課程:轉換及保護 API
適用於:所有 APIM 層
在本教學課程中,您將瞭解如何設定 原則 以保護或轉換 API。 原則是語句的集合,這些語句會依序在修改 API 行為之 API 的要求或回應上執行。
提示
API 小組可以在工作區中使用這項功能。 工作區提供 API 及其專屬 API 運行時間環境的隔離系統管理存取權。
例如,您可能想要設定自定義響應標頭。 或者,藉由設定速率限制原則來保護後端 API,讓開發人員不會過度使用 API。 這些範例是 API 管理 原則的簡單簡介。 如需更多原則選項,請參閱 API 管理原則。
注意
根據預設,API 管理會設定全域 forward-request
原則。 閘道需要 forward-request
原則,才能完成後端服務的要求。
在本教學課程中,您會了解如何:
- 轉換 API 以設定自訂響應標頭
- 新增速率限制原則 (節流) 來保護 API
- 測試轉換
必要條件
- 了解 Azure API 管理術語。
- 了解 Azure API 管理的原則概念。
- 完成下列快速入門:建立 Azure API 管理執行個體。 在本教學課程中,我們建議您使用其中一個傳統或 v2 層,例如開發人員層或基本 v2 層。 取用層不支援本教學課程中使用的所有原則。
- 同時也請完成下列教學課程:匯入和發佈您的第一個 API。
移至您的 API 管理執行個體
在 Azure 入口網站中,搜尋並選取 [API 管理服務]。
在 [API 管理服務] 頁面中,選取您的 API 管理執行個體。
測試原始回應
查看原始回應:
- 在您的 API 管理服務執行個體中,選取 [API]。
- 從您的 API 清單中選取 [Swagger Petstore ]。
- 選取畫面頂端的 [測試] 索引標籤。
- 依狀態作業選取 GET Finds 寵物,並選擇性地選取狀態查詢參數的不同值。 請選取傳送。
原始 API 回應看起來應如下列回應所示:
轉換 API 以新增自訂響應標頭
API 管理 包含數個轉換原則,可用來修改要求或響應承載、標頭或狀態代碼。 在此範例中,您會在 API 回應中設定自訂回應標頭。
設定轉換原則
本節說明如何使用原則來設定自定義響應標頭 set-header
。 在這裡,您會使用可簡化原則設定的窗體式原則編輯器。
選取 [Swagger Petstore>設計>所有作業]。
在 [輸出處理] 區段中,選取 [+ 新增原則]。
在 [新增輸出原則] 視窗中,選取 [設定標頭]。
若要進行標頭原則設定,請執行下列動作:
- 在 [名稱] 底下,輸入 [自定義]。
- 在 [值] 底下,選取 [+ 新增值]。 輸入 「我的自定義值」。
- 選取儲存。
設定之後, set-header 原則專案會出現在 [輸出處理 ] 區段中。
新增速率限制原則 (節流) 來保護 API
本節示範如何設定速率限制,並新增後端 API 的保護,讓開發人員不過度使用 API。 此範例示範如何使用程式代碼編輯器設定 rate-limit-by-key
原則。 在此範例中,限制會設定為每15秒三個呼叫。 15 秒之後,開發人員可以重試呼叫 API。
注意
取用層不支持此原則。
選取 [Swagger Petstore>設計>所有作業]。
在 [輸入處理] 區段中,選取程式碼編輯器 (</>) 圖示。
將游標移至空白行上的
<inbound>
元素內。 接著,選取畫面右上角的 [顯示程式碼片段]。在右側視窗的 [存取限制原則] 下方,選取 [+ 限制每個金鑰的呼叫速率]。
在資料指標新增
<rate-limit-by-key />
元素。將
<inbound>
元素中的<rate-limit-by-key />
程式碼修改為下列程式碼。 然後選取儲存。<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
測試轉換
此時若在程式碼編輯器中查看程式碼,您的原則將如下列程式碼所示:
<policies>
<inbound>
<rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<outbound>
<set-header name="Custom" exists-action="override">
<value>"My custom value"</value>
</set-header>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
本節的其餘部分將測試您在此文章中設定的原則轉換。
測試自定義回應標頭
選取 [Swagger Petstore>測試]。
依狀態作業選取 GET Finds 寵物,並選擇性地選取狀態查詢參數的不同值。 請選取傳送。
如您所見,已新增自定義回應標頭:
測試速率限制 (節流)
選取 [Swagger Petstore>測試]。
選取 [依狀態尋找寵物] 作業。 選取資料 列中的 [傳送 數次]。
在設定的期間傳送太多要求之後,您會收到 429 個太多要求 回應。
至少等候 15 秒,接著再次選取 [傳送]。 此時,您應該得到 200 確定的回應。
摘要
在本教學課程中,您已了解如何:
- 轉換 API 以設定自訂響應標頭
- 新增速率限制原則 (節流) 來保護 API
- 測試轉換
下一步
前進到下一個教學課程: