簡介

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

以下各節將介紹 API 產品相關基本概念

什麼是 API 產品?

API 供應商可以建立 API 產品來封裝 API,供應用程式開發人員使用。您可以將 API 產品視為產品系列。

具體而言,API 產品套裝組合如下:

  • API 資源 (URI) 集合
  • 服務計畫
  • 與業務相關的監控或數據分析中繼資料 (選用)

API 產品隨附的 API 資源可以來自一或多個 API,因此您可以混合並比對資源來建立特殊的功能集,如下圖所示。

您可以建立多個 API 產品,滿足特定用途的需求。舉例來說,您可以建立附帶多種對應資源的 API 產品,讓開發人員輕鬆將地圖整合至自己的應用程式中。另外,您也可以在各項 API 產品中設定不同的屬性,例如不同的定價等級。舉例來說,您可能會提供下列 API 產品組合:

  • 以實惠價格提供存取限制偏低的 API 產品,例如每日 1,000 個要求。這是第二項 API 產品,可提供相同的資源,但存取權上限和價格較高。
  • 免費的 API 產品,提供資源的唯讀存取權。這是第二項 API 產品,提供相同資源的讀取/寫入權限,費用極少。

此外,您也可以在 API 產品中控管 API 資源的存取權。舉例來說,您可以隨附僅限內部開發人員存取的資源,或僅限付費客戶存取。

API 產品是 API 授權與存取權控管的中央機制。Apigee 是佈建 API 金鑰,並非針對 API 本身,而是 API 產品。換句話說,系統會為附加服務方案的資源組合佈建 API 金鑰。

如「註冊應用程式」所述,應用程式開發人員必須註冊應用程式,才能存取您的 API 產品。當應用程式嘗試存取 API 產品時,Apigee 會在執行階段強制執行授權,以確保以下事項:

  • 提出要求的應用程式可存取特定 API 資源。
  • 要求的應用程式未超出允許配額。
  • 定義後,API 產品中定義的 OAuth 範圍,就會與與應用程式提供的存取權杖相關聯的 OAuth 範圍相符。

瞭解重要概念

建立 API 產品前,請先詳閱下列重要概念。

API 金鑰

在貴機構中註冊開發人員的應用程式時,應用程式必須至少與一項 API 產品建立關聯。 將應用程式與一或多個 API 產品配對後,Edge 會為應用程式指派專屬的用戶端金鑰。

用戶端金鑰或存取權杖可做為要求憑證使用。應用程式開發人員將用戶端金鑰嵌入應用程式,因此當應用程式向 Edge 代管的 API 發出要求時,應用程式會透過下列其中一種方式在要求中傳遞用戶端金鑰:

  • 當 API 使用 API 金鑰驗證時,應用程式必須直接傳遞用戶端金鑰。
  • 當 API 使用 OAuth 憑證驗證時,應用程式必須傳遞用戶端金鑰衍生的憑證。

API 金鑰不會自動強制執行。無論使用用戶端金鑰或 OAuth 權杖做為要求憑證,API Proxy 都會在適當流程中加入 VerifyAPIKey 政策OAuth/VerifyAccessToken 政策,在您的 API Proxy 中驗證要求憑證。如果您未在 API Proxy 中加入憑證強制執行政策,任何呼叫端都可以叫用您的 API。詳情請參閱「驗證 API 金鑰政策」一文。

為了驗證要求中傳遞的憑證,Edge 會執行下列步驟:

  • 取得隨要求傳送的憑證。如果是 OAuth 權杖驗證,Edge 會驗證權杖未過期,然後查詢用於產生權杖的用戶端金鑰。
  • 擷取與消費者金鑰相關聯的 API 產品清單。
  • 確認 API 產品包含目前的 API Proxy,且 API 產品中已啟用目前的資源路徑 (網址路徑)。
  • 驗證消費者金鑰未過期或遭撤銷、確認應用程式未撤銷,然後確認應用程式開發人員是否已啟用。

如果符合上述所有檢查條件,憑證驗證就會成功。

其實,Edge 會自動產生用戶端金鑰,但 API 發布商必須使用適當政策,在 API Proxy 中強制執行金鑰檢查。

自動與手動核准

根據預設,系統會自動核准所有透過應用程式存取 API 產品的要求。或者,您也可以將 API 產品設定為手動核准金鑰。在此情況下,凡是來自新增 API 產品的應用程式,都必須核准金鑰要求。詳情請參閱「註冊應用程式及管理 API 金鑰」一文。

配額

配額可以保護後端伺服器,藉此維持高流量,讓產品系列脫穎而出。舉例來說,您可能想要將具有高配額的資源組合成付費產品,並搭配基本產品使用配額較低的相同套裝組合。如果產品相當熱門且收到大量要求,配額有助於避免伺服器遭受負擔。

如要瞭解如何設定配額,請參閱配額政策。如要瞭解如何在配額政策中使用產品配額設定,請參閱下列社群文章: API 產品的配額設定如何與 API Proxy 中的配額政策互動?

OAuth 範圍

如要提升安全性,您可以將任何 OAuth 範圍定義為以逗號分隔的清單,此範圍必須出現在透過產品傳送的存取權杖中。建立產品時,您必須瞭解貴機構使用的所有範圍。您在產品中新增的範圍必須與現有範圍相符,或者產品並不安全。

如要進一步瞭解如何搭配 Edge OAuth 政策使用範圍,請參閱使用 OAuth2 範圍

存取層級

定義 API 產品時,您可以設定下列存取層級。

存取層級 說明
公開 提供給所有開發人員的 API 產品。您可以將這些元件新增至整合性或 Drupal 型開發人員入口網站。
私人或僅限內部使用

適用於私人或內部使用的 API 產品。

注意:「僅限內部」和「僅限內部」的存取層級沒有功能差異。請選擇最能描述 API 產品目標對象的標籤。

您可以在整合式入口網站中新增私人或僅限內部使用的 API 產品,並視需要讓應用程式開發人員使用。

對於以 Drupal 為基礎的開發人員入口網站,您可以在開發人員入口網站上管理私人或僅限內部 API 產品的存取權,詳情請參閱下列各節:

  • 針對 Drupal 9 開發人員入口網站,您可以在開發人員入口網站上設定私人或僅限內部 API 產品的存取權。詳情請參閱「設定 API 產品的存取權」。
  • 對於 Drupal 7 開發人員入口網站,您無法在開發人員入口網站中新增私人或僅限內部使用的 API 產品。如要向應用程式開發人員提供 Private 或僅限內部的 API 產品,您必須按照「註冊應用程式及管理 API 金鑰」一文的說明,將產品手動新增至 Edge 管理 UI 或 API 中已註冊的應用程式。新增後,開發人員會在入口網站中看到與應用程式相關聯的 API 產品 (如「在應用程式中管理 API 產品」一節所述)。如果應用程式開發人員停用特定內部或私人的 API 產品存取權,該 API 產品就會從應用程式中移除,必須由入口網站管理員手動新增。