本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
Apigee 是一个用于开发和管理 API 的平台。通过将代理层的服务前置,Apigee 可为后端服务 API 提供抽象或 Facade,并提供安全性、速率限制、配额、分析等功能。
视频:观看此视频短片,了解 Apigee API 管理。
概要架构
下图显示了 Apigee 的简要架构:
如上图所示,Apigee 包含以下主要组件:
- Apigee 服务:用于创建、管理和部署 API 代理的 API。
- Apigee 运行时:Google 维护的 Kubernetes 集群中的一组容器化运行时服务。所有 API 流量都经过这些服务并由这些服务处理。
此外,Apigee 还使用其他组件,包括:
- Google Cloud 服务:提供身份管理、日志记录、分析、指标和项目管理功能。
- 后端服务:应用用来为 API 代理提供数据访问权限。
如需了解详细说明,请参阅 Apigee 的组件。
以下更详细的图像显示了通过专用对等互连网络的 Cloud 项目与 Google 服务之间的连接:
如需有关如何使用 Apigee 的示例,请参阅这篇有关 Walgreens 如何使用 API 和 Apigee 的网播,其中围绕照片打印、处方和其他工具提供丰富的应用生态系统。
闲话少说!
设置 Apigee | 然后 | 构建您的第一个代理! |
Apigee 的特点
Apigee 具有以下特点:
- Apigee:是 Apigee 上托管的云端版本,由于 Apigee 会负责环境的维护,因此您可以将全部注意力放在构建服务并定义这些服务的 API 上。
- Apigee Hybrid:Hybrid 版本,其中包含在本地或您选择的云服务商安装的运行时层面,以及在 Apigee 的云中运行的管理层面。在此模型中,API 流量和数据限制在您自己的企业批准的边界内。
数字加速
通过此视频,您可以快速了解 Apigee 如何帮助您转型为数字化业务。
在服务管理和 API 管理之间选择
此视频可帮助您了解服务管理和 API 管理之间的重要区别。
在网络上提供服务
如今,公司希望在网络上提供其后端服务,以便移动设备和桌面设备上运行的应用可以使用这些服务。公司可能希望公开如下服务:提供产品价格和可用性信息、销售和订购服务、订单跟踪服务,以及客户端应用所需的任何其他服务。
公司通常会将服务作为一组 HTTP 端点公开。接着,客户端应用开发者向这些端点发出 HTTP 请求。然后,服务可能会以 XML 或 JSON 格式返回数据,使其返回客户端应用,具体取决于端点。
使用这些服务的客户端应用可作为移动设备或平板电脑的独立应用实现,可作为在浏览器中运行的 HTML5 应用实现,也可以作为可以向 HTTP 端点发出请求并使用任何响应数据的任何其他类型的应用。这些应用可能是由发布相关服务的同一公司开发和发布的,也可能由使用公开可用服务的第三方应用开发者开发和发布。
下图显示了此类型的模型:
由于提供商通过网络提供其服务,因此他们必须确保已采取所有必要措施来保护和防护其服务免遭未经授权的访问。作为服务提供商,请考虑:
- 安全性:如何控制对服务的访问权限以防止未经授权的访问?
- 兼容性:您的服务是否可在不同平台和设备上运行?
- 可衡量性:如何监控服务以确保它们可用?
- 以及许多其他注意事项
发布用于访问任何服务的客户端应用后,该服务提供商必须确保这些服务在随着时间推移添加、修改或删除这些服务时将继续正常运行。服务提供商还必须能够告知应用开发者对服务的任何更改,以确保客户端应用与这些服务保持同步。
客户端应用开发者尝试使用不同提供商的服务时将面临挑战。目前,服务提供商可以使用众多技术来公开其服务。同一客户端应用可能必须使用一种机制来使用一个提供商的服务,而使用不同的机制来使用其他提供商的服务。应用开发者甚至可以面临他们必须使用不同的机制来使用同一提供商的服务的情形。
通过 Apigee 提供服务
借助 Apigee,您可以使用在所有服务之间保持一致且定义明确的 API 来安全地访问您的服务,而不考虑服务实现。一致的 API:
- 使应用开发者可以轻松使用您的服务。
- 让您能够更改后端服务实现,而不会影响公共 API。
- 让您能够利用分析、开发者门户以及 Apigee 内置的其他功能。
下图显示了一个由 Apigee 处理从客户端应用发送至后端服务的请求的架构:
他们不会直接让应用开发者使用您的服务,而是访问在 Apigee 上创建的 API 代理。API 代理充当公开 HTTP 端点到后端服务的映射。通过创建 API 代理,您可以让 Apigee 处理保护您的服务所需的安全和授权任务,以及分析和监控这些服务。
由于应用开发者向 API 代理发出 HTTP 请求,而不是直接向服务发出请求,因此开发者无需了解有关服务实现的任何信息。开发者需要了解的事项包括:
- API 代理端点的网址。
- 请求中传递的所有查询参数、标头或正文参数。
- 任何必需的身份验证和授权凭据。
- 响应的格式,包括响应数据格式,例如 XML 或 JSON。
API 代理会将应用开发者与后端服务隔离。因此,只要公共 API 保持一致,您就可以更改服务实现。例如,您可以更改数据库实现、将服务移到新主机,或者对服务实现进行任何其他更改。通过维护一致的前端 API 后,现有客户端应用将继续运行,无论后端的变化如何。
您可以使用 API 代理上的政策向服务添加功能,而无需对后端服务进行任何更改。例如,您可以将政策添加到代理,以执行数据转换和过滤、添加安全性、执行条件逻辑或自定义代码,以及执行许多其他操作。请务必记住,您必须在 Apigee(而不是后端服务器)上实现政策。
如需了解详情,请参阅了解 API 和 API 代理。
创建 API 产品
API 代理是 Apigee 上的 HTTP 端点,开发者用于访问后端服务。虽然可以,但通常并不提供单独的 API 代理。而是将一个或多个 API 代理分组到一个 API 产品中。
API 产品是 API 代理与服务计划组合的软件包。该服务计划可为 API 代理设置访问限制、提供安全性、允许监控和分析,以及提供其他功能。API 产品也是 Apigee 用于授权访问和控制 API 访问的核心机制。
您在创建 API 产品时具有极大的灵活性。例如,多个 API 产品可以共享同一 API 代理。下图显示了三个 API 产品。请注意,所有产品都允许访问 API 代理 3,但只有产品 A 可以访问 API 代理 1。
您可以为每个 API 产品设置不同的属性。例如,您可以提供一个访问限制低的 API 产品(例如每天 1000 个请求)来讨价还价。然后发布另一个 API 产品,提供对同一 API 代理的访问权限,但具有更高的访问限制,而且价格也更高。或者,您可以创建一个免费 API 产品,允许对服务进行只读访问,然后将 API 产品销售给允许读写权限的相同 API 代理。
如需了解详情,请参阅创建 API 产品。
允许客户端应用访问您的 API 产品
当应用开发者决定他们访问您的服务时,他们必须先向您的 API 产品注册其客户端应用。
注册后,应用开发者将收到一个 API 密钥,然后必须在发送给 API 产品中包含的 API 代理的每个请求中包含 API 密钥。该密钥已经过身份验证,如果身份验证成功,则允许请求访问您的后端服务。
您可以随时撤消密钥,以便客户端应用无法再访问您的服务。或者,您可以定义密钥的时间限制,以便开发者必须在特定时间之后刷新密钥。
您可以决定如何处理开发者访问您的 API 产品的注册请求。通过使用 Apigee Developer Services,您可以自动执行注册流程。也可以使用手动流程来控制访问权限
创建 API 产品并向开发者提供
- 创建一个或多个将公共网址映射到后端服务的 API 代理。
- 创建捆绑您的 API 代理的 API 产品。
- 部署您的 API 代理和 API 产品。
- 告知您的开发者,API 产品可用。
一旦应用开发者了解 API 产品的可用性,他们就会:
- 向您的 API 产品注册其客户端应用。
- 接收 API 产品的 API 密钥。
- 通过 API 代理(捆绑在 API 产品中)向您的服务发出请求,并通过每个请求传递 API 密钥。
Apigee 的组件
Apigee 包括 API 运行时、监控和分析功能以及开发者服务,这些服务一起为 API 创建、安全、管理和操作提供全面的基础架构。
下图显示了 Apigee 的简要架构:
Apigee 运行时
无论您是作为服务提供商还是作为应用开发者使用 API、SDK 和其他便利服务构建 API 代理,Apigee 服务都是关于创建和使用 API。
API 运行时提供用于添加和配置 API 代理、设置 API 产品以及管理应用开发者和客户端应用的工具。它会分流您的后端服务中的许多常见管理问题。添加 API 代理时,您可以将政策应用于 API 代理,以增强安全性、速率限制、调解、缓存等。您还可以通过应用自定义脚本、调用第三方 API 和服务等,自定义 API 代理的行为。如需了解详情,请参阅了解 API 和 API 代理。
Apigee 监控和分析
Apigee API Analytics 提供功能强大的工具,方便您查看 API 的短期和长期使用趋势。您可以按热门开发者和应用细分自己的受众群体,按 API 方法了解使用情况,以了解在哪里投资,并为业务级别或运维级别信息创建自定义报告。
当数据通过 Apigee 传递时,系统会收集多种默认类型的信息,包括网址、IP、API 调用信息的用户 ID、延迟时间、错误数据等。您可以创建政策以添加其他信息,例如标头、查询参数,以及从 XML 或 JSON 中提取的请求或响应的某些部分。这些信息会从实际请求/响应流中异步收集,因此不会对 API 性能产生任何影响。
通过 Apigee 界面,您可以在浏览器中查看多个指标和维度,如下图所示:
但是,您也可以通过命令行界面或 RESTful API 访问和控制分析服务。如需了解详情,请参阅 API Analytics 概览。
Apigee 开发者生态系统
Apigee 提供开发者服务,可帮助您:
- 管理使用您的服务的应用开发者社区。
- 与内部和外部开发者合作,正式建立与财务模型的关系。
- 授权开发者参与和创建开发者门户。应用开发者会连接到您的门户,从而访问 API 文档,以详细了解公开的 API 产品并管理 API 密钥。
每个 Apigee 客户都可以在云端创建自己的开发者门户。
Apigee 允许您创建两种类型的门户:
- 可即时预配的集成门户。
- 基于 Drupal 的门户,可以实现全面自定义。