簡介

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

以下各節將介紹 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 範圍會與應用程式提供的存取權權杖相關聯。

瞭解重要概念

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

API 金鑰

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

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

  • 如果 API 使用 API 金鑰驗證,應用程式必須直接傳遞用戶端金鑰。
  • 如果 API 使用 OAuth 權杖驗證,應用程式就必須傳遞從用戶端金鑰衍生的權杖。

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

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

  • 取得要求傳遞的憑證。如果是 OAuth 權杖驗證,Edge 會先確認權杖未過期,然後查詢用於產生權杖的消費者金鑰。
  • 擷取與用戶端金鑰相關聯的 API 產品清單。
  • 確認目前的 API Proxy 包含在 API 產品中,且目前的資源路徑 (網址路徑) 已在 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 10 開發人員入口網站,您可以設定開發人員入口網站上僅限私人或內部使用的 API 產品存取權,詳情請參閱「設定 API 產品的存取權限」。
  • 如果是 Drupal 7 開發人員入口網站,您無法在開發人員入口網站中新增「私人」或「僅限內部」API 產品。如要讓應用程式開發人員使用「私人」或「僅限內部」API 產品,您必須透過 Edge 管理 UI 或 API,手動將這些產品新增至已註冊的應用程式,詳情請參閱「註冊應用程式及管理 API 金鑰」。新增後,開發人員會在入口網站中看到與應用程式相關聯的 API 產品,如「在應用程式中管理 API 產品」一文所述。如果應用程式開發人員停用內部或私人 API 產品的存取權,該 API 產品會從應用程式中移除,且必須由入口網站管理員手動重新新增。