管理 API 产品

您正在查看 Apigee X 文档。
查看 Apigee Edge 文档。

API 产品可捆绑您的 API,并将其提供给应用开发者使用。如需简要了解 API 产品,请参阅什么是 API 产品?

探索 API 产品视图

API 产品会显示您的所有 API 产品以及每种产品的部分详细信息。您可以使用 Apigee 界面的这一部分来创建、修改和删除 API 产品。

要访问“API 产品”视图,请执行以下操作

  1. 登录 Apigee 界面
  2. 选择发布 > API 产品 (API Products)。

    Apigee 会显示 API 产品视图,如以下示例所示:

    “API 产品”视图会显示 API 产品列表。宣传信息显示了图表下方可以完成的任务。

    API 产品视图中,您可以执行以下常见任务:

    下面各节内容对这些任务做出了说明。

添加 API 产品

本部分介绍如何使用 Apigee 界面添加 API 产品。

添加新的 API 产品时,请务必在 API 代理中添加相应的安全政策(例如 VerifyAPIKey 政策OAuthv2 政策),并在流中附加配额政策

如需使用 Apigee 界面添加 API 产品,请执行以下操作

  1. 登录 Apigee 界面
  2. 选择发布 > API 产品。 Apigee 会显示 API 产品视图。
  3. 点击 +API 产品

    Apigee 会显示新产品视图,如以下示例所示:

    添加新的 API 产品。

    以下示例显示了新 API 产品的主要部分:

    • 产品详情:有关 API 产品的基本信息,例如名称、访问权限级别(不公开、公开或内部)和 OAuth 范围。
    • 操作:此 API 产品支持的 API 代理、资源路径和 HTTP 方法组。您可以为每个操作或操作组定义配额和自定义属性。(未显示:API 资源。如果您尚未选择使用新配置,则只能使用 API 资源作为 API 产品中代理的组织模型。API 资源是指 API 产品所映射到的应用、API 代理和远程服务。)
    • 自定义特性:可帮助您控制 API 代理执行的键值对。

    以下各个步骤逐一介绍了这些部分。

  4. 产品详情部分,输入新 API 产品的基本信息。下表介绍了此部分中的字段:

    字段 是否必需? 说明
    Name 必填

    定义 API 产品的内部名称。您可以在引用 API 产品的 Apigee API 中使用此值。Name 字段的值可以包含字母数字字符、空格和以下各项:_ - . # $ %

    例如,My API Productmy-product

    Display name 必填

    定义 API 产品中用于 API 产品的名称。您可以随时修改 API 产品的显示名。

    Display name 可以包含特殊字符。

    例如 <My> API Product!!!

    Description 可选

    可帮助您记住 API 产品的用途或功能的字符串。说明可以包含特殊字符。

    例如 The one where I let dev apps read but not write to the "/porkbellyfutures" endpoints.

    Environment 可选

    标识 API 产品可以访问的环境。

    您在此字段中选择的环境会根据部署它们的位置来限制对 API 代理的访问。例如,如果将 API 代理 A 同时部署到 testprod 环境,但 API 产品仅选择了 test 环境,则 API 调用将仅允许访问 test 环境中部署的 API 代理 A。

    Access 必填 为该 API 产品用户的访问权限级别。如需了解详情,请参阅访问权限级别
    Automatically approve access requests 可选(默认选择)

    自动批准从任何应用向此 API 产品发出的密钥请求。如需要求手动批准密钥,请停用此选项。

    默认值处于选中状态,这表示此 API 产品会自动批准密钥请求。

    如果您选择手动密钥审批,则必须批准来自使用此 API 产品的任何应用的密钥请求。要手动批准密钥,请执行以下操作:

    • 界面:依次选择发布 > 应用,再选择该应用并对其进行修改。然后点击批准
    • API:使用开发者应用密钥 API

    如需了解详情,请参阅注册应用和管理 API 密钥

    Quota 可选

    定义对此 API 产品允许的请求数的限制。此值适用于此 API 产品的所有操作请求的总和。

    此值会替换为您为 API 产品所定义操作设置的更具体的配额限制。

    输入配额值不会自动对可通过 API 产品进行的调用数量施加限制。您还必须将Quota 政策添加到 API 产品引用的 API 代理中。

    如需了解详情,请参阅配额

    Allowed OAuth scope 可选 如果要将 OAuth 用于 API 产品,请输入您想让 API 产品允许的 OAuth 范围列表(例如 Read 或应用通过其 API 调用发送的其他范围),该列表以英文逗号分隔。如需了解详情,请参阅 OAuth 范围
  5. (可选)向您的 API 产品添加操作。通过操作,您可以精确控制哪些 REST 方法可以访问 API 产品中的哪些资源,以及可以调用多少次调用(通过 Quota)。

    要添加新操作,请点击操作部分中的 +添加操作视图将显示以下内容:

    为 API 产品添加新操作。

    添加新运算时,您必须至少指定该操作的来源以及资源路径。不需要特定方法和配额。

    如需了解详情,请参阅向 API 产品添加操作

    如果您没有在新产品视图中看到操作部分,只是看到 API 资源,则说明您尚未选择使用新功能,如本部分开头所述。

    Google 建议您在定义 API 产品时使用操作而非 API 资源。不过,您可以继续使用 API 资源,如下一部分中所述。

  6. (可选)向您的 API 产品添加自定义特性。

    自定义特性是可通过多种方式使用(包括帮助控制 API 代理执行)的键值对。

    一个 API 产品最多可以包含 18 个自定义特性,其中包括在操作上设置的特性。

    例如,您可以创建一个名为 deprecated 且值为 truefalse 的自定义特性。在 API 代理流中,您可以查看 API 产品的 deprecated 特性的值。如果其值为 true,则您可以使用 RaiseFault 政策来抛出错误,因为您希望该操作就像被弃用并且不再受支持一样。

  7. 点击保存。Apigee 会创建新的 API 产品。
  8. 添加新的 API 产品后,还请确保:

    1. 在您的 API 代理中添加相应的安全政策,例如 VerifyAPIKey 政策OAuthv2 政策。API 产品使用 API 密钥和/或 OAuth 访问令牌来强制执行 API 访问。

      如需了解详情,请参阅 API 密钥OAuth

    2. 在流中附加 Quota 政策。否则,您的 API 产品配额设置将不会应用。

向 API 产品添加操作

操作定义了与其匹配的请求的来源、支持的 HTTP 方法和配额。

您最多可以向 API 产品添加 50 个操作。

如需向 API 产品添加操作,请执行以下操作

  1. 登录 Apigee 界面
  2. 选择发布 > API 产品 (API Products)。
  3. 在 API 产品列表中,选择要添加操作的产品。

    Apigee 会显示该 API 产品的详细信息,如以下示例所示:

    有关 API 产品的详细信息

  4. 操作部分中,点击 +添加操作,如以下示例所示:

    API 产品视图的“操作”部分。

    Apigee 会显示添加操作视图:

    有关 API 产品的详细信息

  5. 来源部分中,为操作指定资源。除非您使用 Apigee Adapter for Envoy,否则将使用 API 代理作为来源。

    • (默认)API 代理:从下拉列表中选择一个 API 代理作为 API 产品的来源。
    • (仅限 Apigee Adapter for Envoy)将 API 产品绑定到一个或多个远程服务目标。如果您选择远程服务,则输入服务的网域;例如 httpbin.org。除非您安装了 Apigee Adapter for Envoy,否则您不会看到远程服务字段。
  6. 操作部分中,添加一个或多个资源路径,并为这些路径指定任何 HTTP 方法限制或配额。

    下表介绍了此部分中的字段:

    字段 是否必需? 说明
    Path 必填

    输入操作的资源路径。

    您可以使用操作路径允许或禁止向特定 URI 发送请求。例如,如果您将操作的来源设置为 music API 代理(基本路径为 /music),则 API 产品允许调用 /music 下的所有子路径。但是,如果您希望 API 产品仅允许访问 URI 为 /music/venuesvenues 资源路径,请将 /venues 添加为操作的路径。您可以对所有操作或特定操作执行此操作。

    在这种情况下,允许调用 /music/venues?name=paramount,但对 /music/artists?name=Jack%Johnson 的调用会被阻止。

    请注意,如配置资源路径中所述,资源路径中有一些针对通配符的特殊规则。

    Methods 可选

    在下拉列表中选择一个或多个 HTTP 请求方法。(这些方法有时称为 HTTP 动词。)Apigee 允许发送到 API 代理的请求仅与您选择的方法匹配。

    默认设置为不选择,这允许使用任何 HTTP 方法发出请求。

    如果您未选择至少一种方法,Apigee 会在您保存操作时插入 ALL 作为此字段的值。

    如需了解 HTTP 请求方法的功能,请参阅 HTTP 请求方法

    Quota 可选

    定义 API 代理的配额设置。如果您定义了配额,则必须指定 Quota 下有三个字段:

    1. 第一个字段用于指定在指定的时间段内,允许开发者应用向 API 代理发送的请求数上限。

      此字段对应于 Quota 政策中的 <Allow> 元素。

    2. 第二个字段用于指定配额的重置频率(或时间间隔)。

      此字段对应于 Quota 政策中的 <Interval> 元素。

    3. 第三个字段指定重置期类型(或时间单位),例如天、周或月。

      此字段对应于 Quota 政策中的 <TimeUnit> 元素。

    以下示例限制每天向 API 代理发送的 1000 个 GETHEADTRACE 请求(所有其他 HTTP 请求均会被忽略):

    向操作添加新配额

    以下示例设置每 3 分钟向 /mypath 资源发送 42 个请求的限制(无论 HTTP 方法如何):

    向操作添加新配额

    为操作定义配额时,您必须在 Quota 部分中为这三个字段输入值。

    您无法针对同一操作为多个 HTTP 方法定义不同的配额。如需实现此目的,您需要创建多个 API 产品,并为每个产品定义特定于方法的配额。

    如果您在配额政策和 API 产品中设置这些值(通过此处所述的界面或 API Products API),则 API 产品界面/API 设置的优先级更高。

  7. 自定义特性部分中,为此操作定义自定义特性(最多三个)。自定义特性是您可以在运行时访问的名称/值对。在操作上设置的自定义特性会填充为流变量,并可通过以下模式访问:

    API_PRODUCT_NAME.OPERATION_NAME.attributes.ATTRIBUTE_NAME

    每个特性的名称和值的大小之和不能超过 2KB。

  8. 点击添加以创建新操作,并将其添加到 API 产品。

配置资源路径

请注意资源路径的以下规则:

  • /:表示支持基本路径及其所有子路径。
  • /**:表示支持基本路径的所有子路径(但不支持基本路径)。
  • /*:表示仅支持基本路径的下一级 URI。
  • 在 API 产品或其操作中指定的资源路径适用于添加到 API 产品的所有 API 代理。
  • 更广泛、较不具体的资源路径优先于更具体的资源路径。例如,如果添加 //**,则 / 资源路径优先,/** 资源路径会被忽略。

下表显示了 API 产品针对不同资源路径的默认行为。在此示例中,API 代理的基本路径为 /v1/weatherapikey。API 产品资源路径适用于基本路径后面的路径后缀。

Request URI / 允许 /* 允许 /** 允许 /*/2/** 允许 /*/2/* 允许
/v1/weatherapikey
/v1/weatherapikey/
/v1/weatherapikey/1
/v1/weatherapikey/1/
/v1/weatherapikey/1/2
/v1/weatherapikey/1/2/
/v1/weatherapikey/1/2/3/
/v1/weatherapikey/1/a/2/3/

默认情况下,API 产品中的资源路径 / 支持基本路径和所有子路径。例如,如果 API 代理的基本路径为 /v1/weatherapikey,则该 API 产品支持对 /v1/weatherapikey 以及任何子路径(例如 /v1/weatherapikey/forecastrss/v1/weatherapikey/region/CA 等)的请求。

对于 API 产品,您可以更改此默认值,以使 / 的资源路径仅对应于 API 代理的基本路径。这意味着,API 产品将不允许访问位于 / 之后的任何 URI。如果您进行此项更改,则上表中的“允许 /”下只允许前两行。

如需了解其他信息,请参阅了解 API 产品配置

修改 API 产品

如需修改 API 产品,请执行以下操作:

  1. 登录 Apigee 界面
  2. 选择发布 > API 产品 (API Products)。
  3. 点击要编辑的 API 产品所在的行。 Apigee 显示 API 产品的详细信息。
  4. 点击
  5. 根据需要修改 API 产品的设置。

    您无法修改现有的 API 资源。如果要更改,您必须删除 API 资源,并添加带有更正值的新版本。

    如果资源出现故障或需要更多开发资源,您可以将其删除。删除后,该资源将不再属于当前 API 产品。任何使用 API 产品的应用都无法再访问已删除的资源。删除的资源会从 API 产品中移除,但不会从系统中删除,因此其他 API 产品仍然可以使用这些资源。

  6. (可选)如果启用了 Apigee Monetization,请点击 添加,为 API 产品创建费率方案。
  7. 点击保存

    您的更改将在一小段时间(大约五分钟)内生效。

访问实体后,Apigee 会将以下实体缓存至少 180 秒。

  • OAuth 访问令牌。这意味着 OAuth v2 政策上的 ExpiresIn 元素无法在 180 秒之内使访问令牌到期。
  • 密钥管理服务 (KMS) 实体(应用、开发者、API 产品)。
  • OAuth 令牌和 KMS 实体的自定义属性。

删除 API 产品

如需删除 API 产品,请执行以下操作:

  1. 登录 Apigee 界面
  2. 选择发布 > API 产品 (API Products)。
  3. 将光标放到列表中的 API 产品上。
  4. 点击
  5. 确认删除操作后,删除操作将在一小段时间(大约五分钟)内生效。