第 2 部分:產生並測試 API 金鑰

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

已重構並重新導向,藉由要求 API 金鑰保護 API

開發人員建構了一個應用程式,向您的 API 發出要求,以存取您的後端服務。如要控管 API 存取權,您可以要求開發人員在每次要求時傳遞 API 金鑰。如果金鑰遺失或無效,要求就會失敗。

「發布」是指讓應用程式開發人員能夠使用您的 API 的過程。下列工作可以廣泛定義發布 API:

  1. 在 Apigee Edge 中建立封裝您 API 的 API 產品。
  2. 在 Edge 上註冊應用程式開發人員。只有已註冊的應用程式開發人員才能註冊應用程式。
  3. 開發人員會在 Edge 上註冊應用程式,以便存取 API 產品。開發人員會收到 API 金鑰做為回應。開發人員已取得 API 金鑰,可以向您的 API 發出要求。

詳情請參閱「發布簡介」。

下表定義了用於註冊應用程式及產生金鑰的部分字詞:

字詞 定義
API 產品 一組 API Proxy 加上服務方案,設定這些 API 的存取權限制。API 產品是 Apigee Edge 用來授權及控管 API 存取權的中央機制。
開發人員 API 消費者。開發人員會編寫可向您的 API 發出要求的應用程式。
應用程式 開發人員註冊以存取 API 產品的用戶端應用程式。透過 API 產品註冊應用程式時,系統會產生 API 金鑰,以便存取該產品中的 API。
API 金鑰 包含授權資訊的字串,用戶端應用程式會使用這組授權資訊存取 API 產品公開的資源。當註冊的應用程式與 API 產品建立關聯時,系統就會產生 API 金鑰。

進行本教學課程的必備條件

本教學課程假設您已完成第一個教學課程,您會建立用來存取 Yahoo 天氣 API 的 API Proxy。如果您尚未完成第一個教學課程,請參閱「要求 API 金鑰來保護 API」一文。

步驟 1:建立 API 產品

  1. 在管理 UI 中,按一下「發布」分頁標籤,然後點選「產品」
  2. 按一下「(+) 產品」
  3. 在「新增產品」對話方塊中輸入或選取下列內容:
    欄位
    名稱 免費 API 產品
    顯示名稱 免費 API 產品
    說明 免費 API 產品
    環境 測試
    存取權 僅供內部使用
    金鑰核准類型 自動
    (API 金鑰產生後會自動核准)
    配額 每小時 10 個要求
    (將要求數限制為每小時 10 次)
    允許的 OAuth 範圍 留白

    填入對話方塊應如下所示:

  4. 在「資源」部分選擇所需設定:
    • API Proxyweatherapikey
    • 修訂版本:1
    • 資源路徑:/forecastrss**

      「資源路徑」會指定產品允許應用程式存取的資源 URI。在此範例中,應用程式只能透過此 API 產品存取 weatherapikey Proxy 上的 /forecastrss 資源。禁止使用這項 API 產品存取 weatherapiproxy Proxy 或任何其他 Proxy 上的任何其他資源。

      「資源路徑」可以使用萬用字元。萬用字元「/**」表示包含所有子 URI,表示資源格式為 /forecastrss/foo/bar。萬用字元「/」表示只會納入一個層級的 URI。詳情請參閱「建立 API 產品」一文。

      請注意,「Resource Path」下拉式清單會顯示指定 API Proxy 中定義的所有條件式流程。API Proxy 的條件式流程會定義與資源路徑相關聯的邏輯或處理步驟。API 產品可控管這些資源路徑的存取權。
  5. 按一下「Import Resource」。已新增資源路徑,且 weatherapikey API Proxy 會自動新增至「Product API Proxy」一節。
  6. 按一下 [儲存]。您的新產品會顯示在「產品」頁面上。

瞭解詳情:

步驟 2:註冊開發人員

如要產生 API 金鑰,請先註冊應用程式,並將該金鑰與 API 產品建立關聯。不過,您必須先註冊應用程式的開發人員,才能註冊應用程式。

  1. 在管理 UI 中,依序按一下「發布」分頁標籤和「開發人員」
  2. 按一下「(+) 開發人員」
  3. 在「New Developer」對話方塊中輸入下列值:
    • First NameJane
    • 姓氏教學課程
    • 電子郵件地址janetutorial@example.com
    • 使用者名稱jtutorial
  4. 按一下 [儲存]。新開發人員會顯示在「開發人員」頁面的開發人員清單中。

瞭解詳情:

步驟 3:註冊應用程式

您擁有 API 產品和開發人員後,可以透過 API 產品註冊應用程式。註冊應用程式後,系統會針對與應用程式相關聯的 API 產品產生 API 金鑰。接著,您可以將金鑰發布給應用程式開發人員,讓他們透過應用程式存取 API 產品的功能。

  1. 在 API 平台 UI 中,依序按一下「發布」分頁標籤和「開發人員應用程式」
  2. 按一下「(+) 開發人員應用程式」
  3. 在「新增應用程式」對話方塊中輸入下列值:
    • 顯示名稱Weather API Key App
    • 開發人員Jane 教學課程 (janetutorial@example.com)
    • Callback URL (回呼網址):留空
  4. 將應用程式與產品建立關聯:
    1. 在「產品」部分按一下「+ 產品」
    2. 選取「免費 API 產品」
    3. 按一下「勾號」圖示即可接受變更。
  5. 按一下「儲存」。新應用程式會顯示在「開發人員應用程式」頁面上的應用程式清單中。
  6. 在應用程式清單中選取「Weather API Key App」。系統會隨即開啟該應用程式的詳細資料頁面。
  7. 由於您在建立 API 產品時選取了「金鑰核准類型:自動」,因此會自動核准該 API 金鑰,讓您可以立即查看。(如果您選取「Approval Type: Manual」,則必須在 Free API 產品的「動作」欄中按一下「核准」,才能核准 API 金鑰)。
  8. 在「產品」專區中的「免費 API 產品」項目旁邊,按一下「Consumer Key」(消費者金鑰) 和「Consumer Secret」(消費者密鑰) 資料欄中的「Show」(顯示),即可顯示產生的金鑰。

    用戶端金鑰是 API 金鑰的另一個名稱,是應用程式透過 API Proxy 存取預測資源的唯一金鑰。透過 OAuth 2.0 保護 API 時,必須使用用戶端密鑰 (以及用戶端金鑰)。請參閱「OAuth 2.0:設定新的 API Proxy」一文。

瞭解詳情:

步驟 4:在要求中使用 API 金鑰

為確保 VerifyAPIKey 政策正常運作,您必須使用有效的 API 金鑰呼叫 API Proxy,以進行測試。您可以透過瀏覽器、API Proxy 的「Trace」頁面、Apigee 控制台或使用 cURL,向瀏覽器要求 API Proxy。要求的網址格式為:

http://{org-name}-test.apigee.net/v1/weatherapikey/forecastrss?w=12797282&apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls

請將 {org-name}} 和正確的 apikey替換成您的 Apigee 機構名稱。

查看回應中是否有下列內容:

<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"> 
<channel> <title>Yahoo! Weather - Palo Alto, CA</title> 
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Palo_Alto__CA/*http://weather.yahoo.com/forecast/USCA1093_f.html</link> 
<description>Yahoo! Weather for Palo Alto, CA</description> <language>en-us</language>

如果您在要求中省略 API 金鑰,或指定了無效的金鑰值,您會收到錯誤回應,格式如下:

{"fault":{"faultstring":"Failed to resolve API Key variable null","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

步驟 5:後續步驟

使用查詢參數傳送 API 金鑰以向 API 發出要求後,請修改 API,將金鑰以標頭的形式傳遞。

繼續參閱「要求 API 金鑰來保護 API」一節。