API 的发布者需要一个能够有效推销 API 并帮助客户区分不同产品/服务的网站。 客户选择 API 后,发布者需要能够仅向经过身份验证的用户授予访问权限、管理消费并提供准确的发票以供使用。 此示例方案展示了如何使用 Azure 服务和 GitHub 创建平台来完成所有这些操作以及其他更丰富的内容。
体系结构
下载此体系结构的 PowerPoint 文件。
数据流
该解决方案主要包含以下构建基块:
后端 API 和 API 网关盈利。 该解决方案的核心是一组可盈利的后端 API。 使用者(例如用户)、应用程序和设备可通过 API 网关访问 API 平台。 网关会根据需要限制请求并调整费率。
使用者门户和应用程序。 API 平台的使用者浏览 API 产品/服务、注册,然后生成订阅密钥以访问各种 API 终结点。 他们可以使用解决方案的帐户管理功能更新有关其帐户和计费的信息。
管理门户和应用程序。 平台管理员发布 API 产品列表、其定价和费率计划。 这些门户还提供有关各种 API 产品使用情况的丰富分析,有助于排查问题并提供支持服务。
业务线服务。 需要这些服务来提供使用者门户和应用程序功能,并支持解决方案中支持的各种用户旅程。
API 使用跟踪和费用计算引擎。 在 API 网关层捕获的 API 使用报告会定期导出到单独的数据存储中。 计划作业基于此数据运行,以根据其订阅列表和相关定价模型计算任何使用者帐户的费用。
此解决方案中的处理顺序如下所示:
API 发布者使用 Azure 门户导入 API 规范,按产品对其进行分组,然后发布。
API 发布者更新相应 GitHub 存储库中的产品相关营销信息。
API 使用者访问市场门户,浏览各种产品,并选择特定的 API 服务。
当使用者尝试查看有关 API 服务的详细信息时,使用者门户会将使用者重定向到增强的开发人员门户,该门户托管在 GitHub 上并使用 GitHub Pages。
使用者可以浏览不同的 API 规范、开发人员相关信息,甚至可以尝试通过使用示例有效负载来调用终结点。
使用者在平台上进行注册,然后激活其有兴趣使用的特定 API 服务的订阅。
使用者在其应用或设备中使用 API 服务。
API 的调用会生成有关其使用和消耗的指标,这些指标由 Azure 存储在跟踪数据库中。
使用数据会定期导出并保存到自定义数据库(通常是数据湖)中,以供进一步分析。
后端作业根据使用数据和各种订阅计算费用。
发票和付款相关信息存储在计帐数据库中。 此信息用于计算服务的收入。
组件
该解决方案由以下软件即服务 (SaaS) 产品/服务组成:
Azure API 管理是一种托管平台即服务,允许组织向内部和外部使用者发布 API。 使用 API 管理,可以发布能在任何地方托管的 API。 基本上,API 管理允许将 API 托管与已发布网关分离,该网关充当企业发布的 API 的完整布局的单一入口点。 有关详细信息,请参阅网关路由模式。
API 管理也基于所有发布的 API 提供治理层。 通过使用 API 管理策略和各种其他功能(例如费率限制和配额),可以根据密钥或订阅限制 API 请求。 API 管理包括一个开发人员门户,该门户提供完全可定制的网站,作为通过其发布的 API 的文档。
GitHub 是 Microsoft 提供的一种广受欢迎的 SaaS 产品/服务,开发人员经常使用它来生成、发布和维护自己的软件项目。 它提供可以在解决方案中使用的重要功能:
GitHub Pages 使企业能够直接从 GitHub 存储库中托管丰富的基于 HTML 的网站。
Azure 应用程序服务是一个完全托管的计算平台,用于托管自定义 Web 应用程序。
Azure Active Directory (Azure AD) B2C 是 Microsoft Entra ID 的扩展,应用程序可以使用它来管理外部客户或合作伙伴标识的访问权限和授权。 可以利用 Microsoft 标识平台轻松地将标识和授权集成到自己的自定义应用程序中。
方案详细信息
任何 API 平台的成功和采用在很大程度上取决于它在市场中的地位。 除了平台提供的数字资产之外,查找 API 的简便性和使用 API 的难易程度对客户是否使用平台有很大影响。 必须让客户能找到文档并获得问题支持。 该平台还应促进社区贡献,以帮助客户调整 API 以符合其需求。 API 的发布者需要一个能够有效推销 API 并帮助客户区分不同产品/服务的网站。 客户选择 API 后,发布者需要能够仅向经过身份验证的用户授予访问权限、管理消费并提供准确的发票以供使用。 此示例方案展示了如何使用 Azure 服务和 GitHub 创建平台来完成所有这些操作以及其他更丰富的内容。
可能的用例
可以使用此解决方案让 API 开发人员轻松地:
- 发现并了解 API 产品/服务。
- 订阅各种应用程序和频道并与之集成。
- 获取帮助、排查问题并修正问题。
- 促进社区贡献并交流想法和知识。
API 价值链
位于价值链顶端的是 API 服务提供商。 接下来是 API 使用者或集成商,他们为最终的目标使用者设计和构建体验。 最终用户和客户是价值链中的最终受益者。
API 开发人员经验
下载此图的 PowerPoint 文件。
API 开发人员体验主要涉及三个门户:
使用者门户。 使用者门户用作展示企业提供的各种 API 产品的营销网站。
开发人员门户。 开发人员门户为第三方开发人员提供有关各种 API 服务以及如何在其应用程序中使用它们的文档。
帐户门户。 注册用户使用帐户门户管理其订阅并执行其他与帐户相关的活动。
功能要求
概括地说,企业级 API 平台的功能要求分为三类,即产品化、平台管理和使用者体验。
以下部分进一步描述了每个功能区域内的功能。
产品化
产品化的目标是识别和定义盈利的 API、其管理以及将它们作为数字产品销售的策略。 因此涵盖以下内容:
- 功能,例如识别产品变体及其与有形资产的相应关联。
- 定价和费率计划的定义,以及必要的元数据。
- 为了驱动使用者体验而必须创建的内容。
产品化包括以下功能:
API 产品。 此 API 目录可供消费者使用。 提供产品以供购买或作为免费服务。
变体。 开发人员经验应识别所有盈利的 API 产品变体。
定价计划。 定义各种定价计划,使其对消费者有吸引力。
分类和内容。 定义和创建这些 API 产品营销策略所需的内容(文本、PDF、图像等)。
有形资产。 这包括作为特定 API 产品一部分的实际云服务及其相应的生命周期管理。 请在制定定价计划时考虑维护这些服务的运营成本。
平台管理
平台管理侧重于 API 平台的整体托管、管理和治理。 它还为管理各种业务线应用程序和服务的管理提供了端到端的解决方案。 需要重点关注的是订阅管理、计费和开票。 平台管理还提供业务见解和分析,以呈现服务的整体运行状况,包括财务和运营方面。
平台管理包括以下功能:
用户注册。 确定用户在平台上注册的方式。 根据用户群定义任何必要的审批工作流。
API 目录。 识别通过 API 管理发布的 API 资产。 应用策略来控制 API 的访问和使用。 管理用户的订阅。
见解和分析。 捕获遥测数据以生成各种指标。 通过使用不同的仪表板(例如 Power BI)来可视化数据,以获得业务和 IT 决策者所需的各种见解。
计费和开票。 定义与订阅、订单管理、计费和开票相关的工作流。
支持。 建立工具和流程来处理支持请求。
使用者体验
API 平台的采用在很大程度上取决于使用者能否轻松地:
- 发现其需要的 API。
- 通过浏览开发人员门户查看规范和技术内容。
- 注册以订阅。
- 为所选的 API 产品付费。
- 开始在其应用程序中使用 API。
使用者体验通常通过 Web 门户或移动应用提供,也可以兼而有之。 Azure AD B2C 可对用户注册和标识管理提供帮助。 Azure AD B2C 包括对 OpenID 标识提供者的支持,例如 Microsoft 和 Google。
使用者体验包括以下组成部分:
产品 (API) 目录。 为匿名用户和注册用户创造市场体验。
帐户和订阅管理。 根据希望使用 API 的用户类型建立注册和登录过程。 支持用户偏好,例如使用现有的社交标识提供者。 可实现自助订阅管理、激活和停用服务,以及按发票支付费用。
用户界面 (UI)/用户体验 (UX)。 确定并定义自己支持的频道以提供最终用户体验。 包括多设备、多形式功能以及现代 UI 设计。 通过可用性研究丰富体验。
注意事项
此方案中的组件解决了性能、可靠性和安全性等方面的问题。
API 管理支持自动缩放,它可以快速扩展 API 管理功能以响应不断增加的传入请求。 API 管理还支持区域冗余和多区域部署,以提供复原能力和高可用性。 有关区域冗余的详细信息,请参阅 Azure API 管理的可用性区域支持。 有关 API 管理安全性的详细信息,请参阅 API 管理的 Azure 安全基线。
应用程序服务是一个完全托管的平台即服务,具有内置的安全性和自动缩放功能,具有承诺高可用性的 SLA。 应用程序服务符合 ISO、SOC 和 PCI 标准,它支持使用 Microsoft Entra ID、Google、Facebook、Twitter 或 Microsoft 帐户对用户进行身份验证。 借助应用程序服务,还可以创建 IP 地址限制。
Azure AD B2C 提供高可用性和可缩放性以支持数亿用户。 Azure AD B2C 支持 OpenID Connect 和多个标识提供商,以便客户可以选择其偏好的提供商。 Azure AD B2C 还支持基于应用程序和基于策略的多重身份验证,增加了一层安全性。 有关 Azure AD B2C 的详细信息,请参阅什么是 Azure Active Directory B2C? 有关使用外部标识的详细信息,请参阅 Microsoft Entra ID 中的外部标识。
GitHub 使安全审查成为代码审查中的一个自动化环节,可以扫描每个新提交以查找潜在的安全问题。 此服务有助于在将提交内容补充进代码库时立即发现存在的问题。 GitHub 安全允许针对安全问题自定义搜索并集成第三方扫描引擎。 有关更多功能和详细信息,请参阅 GitHub 上的安全性。
成本优化
可以使用适用于 GitHub 的 Team 或 Enterprise 定价计划来开发使用者门户。 请参阅功能矩阵以确定最适合企业的计划。
对于 API 管理,可以使用“标准”或“高级”层。 要更好地了解各层之间的差异,请参阅 API 管理定价选项。
对于 Azure 应用程序服务,请参阅适用于 Windows 和 Linux 环境的定价选项以托管自己的应用程序。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
首席作者:
- Subhajit Chatterjee | 行业云首席软件工程师