使用 API 管理 和 GitHub 設計絕佳的 API 開發人員體驗

Azure App Service
Azure Private Link
Azure 虛擬網路

身為 API 發行者,您需要一個可有效銷售 API 的網站,並協助客戶區分供應專案。 選取 API 時,您必須只授與已驗證使用者的存取權、管理取用,以及提供正確的發票以供使用。 此範例案例示範如何使用 Azure 服務和 GitHub 來建立一個平臺,以執行所有這些作業等等。

架構

此架構元件和工作流程的圖表,透過構成解決方案的因特網入口網站和 Azure 服務,包括 Microsoft Entra B 2 C、Azure A P I 管理、A P I 閘道和企業營運服務。

下載此架構的PowerPoint檔案

資料流程

解決方案主要包含下列建置組塊:

  • 獲利的後端 API 和 API 閘道。 解決方案的核心是一組獲利的後端 API。 取用者,例如使用者、應用程式和裝置,會透過 API 閘道存取 API 平臺。 閘道會視需要節流要求並套用速率撫平。

  • 取用者入口網站和應用程式。 API 平臺的取用者會流覽 API 供應專案、註冊,然後產生訂用帳戶密鑰來存取各種 API 端點。 他們可以使用解決方案的帳戶管理功能來更新其帳戶和計費的相關信息。

  • 管理員入口網站和應用程式。 平臺管理員會發佈 API 產品清單、其定價和費率方案。 這些入口網站也提供豐富的分析,以使用各種 API 產品,協助針對問題進行疑難解答,並提供支持服務。

  • 企業營運服務。 這些服務必須提供取用者入口網站和應用程式的功能,並支援解決方案中支援的各種使用者旅程圖。

  • API 耗用量追蹤和費用計算引擎。 在 API 閘道層擷取的 API 取用報告會定期匯出至個別的數據存放區。 排程的工作會根據訂閱清單和相關聯的定價模式,在此數據上執行,以計算套用至任何取用者帳戶的費用。

此解決方案中的處理順序會依下列方式流動:

  1. API 發行者會使用 Azure 入口網站 匯入 API 規格、依產品分組,並加以發佈。

  2. API 發行者會更新對應 GitHub 存放庫中的產品相關營銷資訊。

  3. API 取用者會存取市集入口網站、流覽各種產品,然後選取特定的 API 服務。

  4. 當取用者嘗試檢視 API 服務的詳細資訊時,取用者入口網站會將取用者重新導向至 GitHub 上裝載的增強開發人員入口網站,並使用 GitHub Pages。

  5. 取用者可以使用範例承載來流覽不同的 API 規格、開發人員相關信息,甚至嘗試叫用端點。

  6. 取用者會向平臺註冊,然後針對想要使用的特定 API 服務啟用訂用帳戶。

  7. 取用者會在其應用程式或裝置中使用 API 服務。

  8. API 的叫用會產生其使用和取用的相關計量,這些計量會由 Azure 儲存在追蹤資料庫中。

  9. 取用數據會定期匯出並儲存至自定義資料庫,通常是數據湖,以供進一步分析。

  10. 後端作業會計算取用數據和各種訂用帳戶的費用。

  11. 發票和付款相關信息會儲存在會計資料庫中。 這項資訊可用來計算服務的收入。

元件

解決方案是由下列軟體即服務 (SaaS) 供應專案所組成:

  • Azure API 管理 是受控平臺即服務,可讓組織將 API 發佈至內部和外部取用者。 透過 API 管理,您可以發佈可裝載於任何地方的 API。 基本上,API 管理 允許從已發佈的閘道分離 API 裝載,做為企業所發佈 API 完整架構的單一進入點。 如需詳細資訊,請參閱 網關路由模式

    API 管理 也會在所有已發佈的 API 上提供治理層。 藉由使用 API 管理 原則、各種其他功能,例如速率限制和配額,您可以根據密鑰或訂用帳戶來節流 API 要求。 API 管理 包含開發人員入口網站,提供完全可自定義的網站,作為您透過其發佈之 API 的檔。

  • GitHub 是 Microsoft 的熱門 SaaS 供應專案,開發人員經常用來建置、交付和維護其軟體專案。 它提供可在解決方案中使用的重要功能:

  • Azure App 服務 是完全受控的計算平臺,用於裝載自定義 Web 應用程式。

  • Azure Active Directory B2C (Azure AD B2C) 是 Microsoft Entra 識別符的延伸模組,您的應用程式可用來管理外部客戶或合作夥伴身分識別以進行存取和授權。 您可以使用 Microsoft 識別平台 ,輕鬆地在自訂應用程式中整合身分識別和授權。

案例詳細資料

任何 API 平臺的成功和採用主要取決於它在市集中受到的高度。 除了平臺所提供的數字資產之外,尋找 API 的便利性以及使用方式的便利性,對客戶是否使用平臺有很大的影響。 客戶必須能夠尋找檔並接收問題支援。 平臺也應該協助社群參與,以協助您的客戶根據其需求塑造 API。 身為 API 發行者,您需要一個可有效銷售 API 的網站,並協助客戶區分供應專案。 選取 API 時,您必須只授與已驗證使用者的存取權、管理取用,以及提供正確的發票以供使用。 此範例案例示範如何使用 Azure 服務和 GitHub 來建立一個平臺,以執行所有這些作業等等。

潛在使用案例

您可以使用此解決方案,輕鬆地讓 API 開發人員:

  • 探索並瞭解您的 API 產品供應專案。
  • 訂閱並與您的各種應用程式和通道整合。
  • 取得協助、針對問題進行疑難解答,以及補救問題。
  • 促進社群貢獻,交流想法和知識。

API 價值鏈結

描述 A P I 實值鏈結的圖表。

在值鏈的頂端是 API 服務提供者。 接下來是 API 取用者或整合者,他們為最終目標取用者設計和建置體驗。 終端使用者和客戶是價值鏈結中最終的受益者。

API 開發人員體驗

增強型 P I 開發人員體驗的特性和功能圖表。

下載此圖表的PowerPoint檔案

API 開發人員體驗有三個入口網站:

  • 取用者入口網站。 取用者入口網站是一個營銷網站,展示企業所提供的各種 API 產品。

  • 開發人員入口網站。 開發人員入口網站提供第三方開發人員檔,說明各種 API 服務,以及如何在其應用程式中使用它們。

  • 帳戶入口網站。 已註冊的使用者會使用帳戶入口網站來管理其訂用帳戶,並執行其他帳戶相關活動。

功能需求

概括而言,企業級 API 平臺的功能需求分為三個類別,即產品化平臺管理和消費者體驗

此圖顯示企業級 A P I 平臺的三大功能需求。

下列各節會進一步說明每個功能區域內的功能。

產品化

產品化的目標是要識別並定義獲利 API、其管理,以及將其銷售為數位產品的策略。 因此,它涵蓋:

  • 功能,例如識別產品的變體及其對應到實體資產的對應。
  • 定價和費率方案的定義,以及必要的元數據。
  • 必須建立才能推動取用者體驗的內容。

產品化包含下列功能:

  • API 產品。 此 API 目錄可供取用者使用。 產品可能會提供購買或免費服務。

  • Variants。 開發人員體驗應識別任何獲利的 API 產品變體。

  • 定價方案。 定義各種定價方案,使其對消費者很有吸引力。

  • 分類法和內容。 定義及建立這些 API 產品行銷策略所需的內容-文字、PDF、影像等等。

  • 實體資產。 這包括屬於特定 API 產品的實際雲端服務及其對應的生命週期管理。 請考慮維護這些服務的作業成本,同時衍生定價方案。

平臺管理

平臺管理著重於 API 平台的整體裝載、管理和治理。 它也提供端對端解決方案,用於管理各種企業營運應用程式和服務。 重點的主要領域是訂用帳戶管理、計費和發票。 平臺管理也提供一代商業見解和分析,以呈現服務的整體健康情況,包括其財務和營運層面。

平臺管理包含下列功能:

  • 用戶註冊。 識別使用者向平台註冊的方式。 根據用戶區段,定義任何必要的核准工作流程。

  • API 目錄。 識別透過 API 管理發佈的 API 資產。 套用原則來控制 API 的存取和使用。 管理使用者的訂用帳戶。

  • 深入解析和分析。 擷取遙測數據以產生各種計量。 使用 Power BI 等不同儀錶板將數據可視化,以衍生商務和 IT 決策者所需的各種見解。

  • 計費和發票。 定義與訂用帳戶、訂單管理、計費和發票相關的工作流程。

  • 支援。 建立工具和程式來處理支援要求。

取用者體驗

採用 API 平臺在很大程度上取決於取用者如何輕鬆:

  • 探索所需的 API。
  • 瀏覽開發人員入口網站來檢閱規格和技術內容。
  • 註冊以訂閱。
  • 支付他們選取的 API 產品費用。
  • 開始在其應用程式中使用 API。

取用者體驗通常會透過入口網站、行動應用程式或兩者傳遞。 您可以使用 Azure AD B2C 來協助用戶註冊和身分識別管理。 Azure AD B2C 包含 OpenID 識別提供者的支援,例如 Microsoft 和 Google。

取用者體驗包含下列元件:

  • 產品 (API) 目錄。 為匿名和註冊的使用者建立市集體驗。

  • 帳戶和訂用帳戶管理。 根據您預期使用 API 的使用者類型,建立註冊和登入的程式。 支援使用者喜好設定,例如使用現有的社交識別提供者。 允許自助式訂用帳戶管理、啟用和停用服務,以及按發票付款的費用。

  • 使用者介面 (UI) / 使用者體驗 (UX) 。 識別並定義您支援用戶體驗之通道的體驗。 包含多裝置、多尺寸功能,以及新式UI設計。 透過可用性研究豐富體驗。

考量

此案例中的元件可解決效能、可靠性和安全性的問題。

API 管理 支援自動調整,可快速擴充 API 管理 功能,以回應越來越多的傳入要求。 API 管理 也支援區域備援和多區域部署,以提供復原和高可用性。 如需區域備援的詳細資訊,請參閱 Azure API 管理 的可用性區域支援。 如需 API 管理 安全性的詳細資訊,請參閱適用於 API 管理 的 Azure 安全性基準。

App Service 是完全受控的平臺即服務,具有內建安全性和自動調整功能,並具有 保證高可用性的 SLA 。 App Service 符合 ISO、SOC 和 PCI 規範,並支援使用 Microsoft Entra ID、Google、Facebook、Twitter 或 Microsoft 帳戶驗證使用者。 使用 App Service,您也可以 建立 IP 位址限制

Azure AD B2C 提供高可用性和規模,以支援數億個使用者。 Azure AD B2C 支援 OpenID 連線 和多個識別提供者,讓客戶可以選擇其慣用的提供者。 Azure AD B2C 也支援應用程式型和原則型多重要素驗證,並新增額外的安全性層級。 如需 Azure AD B2C 的詳細資訊,請參閱 什麼是 Azure Active Directory B2C? 如需使用外部身分識別的詳細資訊,請參閱 Microsoft Entra ID 中的外部身分識別。

GitHub 會讓安全性檢閱成為程式代碼檢閱的自動化部分,並掃描每個新認可是否有潛在的安全性問題。 此服務可協助您在程式代碼基底新增時立即探索問題。 GitHub 安全性可讓您自定義搜尋安全性考慮,並整合第三方掃描引擎。 如需更多功能和詳細數據,請參閱 GitHub 上的安全性

成本最佳化

您可以使用 GitHub 的 TeamEnterprise定價方案來開發取用者入口網站。 請參閱功能矩陣,以識別最適合您企業的方案。

針對 API 管理,您可以使用標準層或 進階版 層。 若要進一步瞭解階層之間的差異,請參閱 API 管理 定價選項

如需 Azure App 服務,請參閱適用於裝載應用程式的 WindowsLinux 環境的價格選項。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主體作者:

下一步