什么是政策?

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

借助 Apigee,您可以使用政策编程 API 行为,而无需编写任何代码。政策就像一个实现特定受限管理功能的模块。这些政策旨在让您能够轻松可靠地向 API 添加常见的管理功能类型。政策提供安全、速率限制、转换和中介功能等功能,让您无需自行编写代码和维护此功能。

不限于 Apigee 提供的一组政策类型。您还可以编写自定义脚本和代码(例如 JavaScript 应用),它们能够扩展 API 代理功能,让您在 Apigee 政策支持的基本管理功能的基础上创新。

本主题简要介绍了 Apigee 中的政策类型和用法。如需了解特定政策,请参阅政策参考概览

政策类型和类别

从技术上讲,政策是 XML 格式的配置文件。每个政策的结构(例如必需和可选配置元素)均由 XML 架构定义。如果您精通 XML 工具,那么值得熟悉 GitHub 上 API 平台示例中的政策架构。

Apigee 政策分为以下功能类别。政策参考概览中列出了每个政策类别可用的政策。

流量管理

通过流量管理类别中的政策,您可以通过 API 代理控制请求和响应消息的流。这些政策同时支持操作级和业务级控制。它们可让您控制原始吞吐量,还可以按应用控制流量。通过流量管理政策类型,您可以强制执行配额,还有助于减轻拒绝服务攻击的风险。

安全

安全类别中的政策支持身份验证、授权以及基于内容的安全措施。

中介

中介类别中的政策让您可以在消息流经 API 代理时主动对其执行操作。它们允许您将消息格式从 XML 转换为 JSON(反之亦然),或将一种 XML 格式转换为另一种 XML 格式。它们还可让您解析消息、生成新消息和更改出站消息的值。中介政策还与 Apigee 公开的基本服务进行交互,让您可以在运行时检索有关应用、开发者、安全令牌和 API 产品的数据。

扩展程序

通过扩展程序类别中的政策,您可以利用 Apigee 的可扩展性,从而以您选择的编程语言实现自定义行为。

关联政策

为了让政策适用于您的 API 代理,您必须将其关联到流中的代理。如需了解相关信息,请参阅本部分中的其他主题,包括在界面中关联和配置政策以及在 XML 文件中关联和配置政策

部署政策更改

要使政策更改生效,您必须将 API 代理修订版本部署到环境。在关联政策或对现有政策做出更改后,请使用 Apigee 界面或 Apigee API 部署更改

验证政策执行情况

要验证政策是否正确执行,API 必须由 HTTP 客户端调用。如需验证 Quota 配置,请设置配额(例如,每分钟一个请求),使其超出您在配额政策中设置的配额限制,然后向 API 提交多个请求。(下面请求中的 URI 路径(配置为 ProxyEndpoint 中的基本路径设置)是 /weather)。

http://ORG_NAME-test.apigee.net/weather/forecastrss?w=12797282

在一分钟内提交多个请求后,您应该会看到以下错误消息:

{
   "fault":{
      "faultstring":"policies.ratelimit.QuotaViolation",
      "detail":{
         "errorcode":"policies.ratelimit.QuotaViolation"
      }
   }
}

这表示 Apigee 正在强制执行 Quota 政策。

基于政策的错误处理

请记下以上错误消息的格式。它包含 faultstring 属性和 errorcode 属性。在许多情况下,您需要实现某些处理这些错误的行为。例如,您可能想要向应用超出 Quota 的开发者发送自定义消息。

如需详细了解错误处理,请参阅处理错误

最佳做法:常见政策集

为了满足基本管理要求,API 代理通常会强制执行以下政策:

基本 API 密钥验证

ProxyEndpoint 请求流程
  1. SpikeArrest
  2. XMLThreatProtectionJSONThreatProtection
  3. API 密钥验证
  4. Quota
  5. ResponseCache
ProxyEndpoint 响应流程
  1. ResponseCache

基本转换:JSON 到 XML

请求流程
  1. SpikeArrest
  2. JSONThreatProtection
  3. API 密钥验证
  4. Quota
  5. JSONToXML
响应流程
  1. XMLToJSON
  2. ResponseCache