您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
什麼是 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 產品存取權,詳情請參閱下列章節:
|