开发 API 代理

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

您可以通过实现 API 代理在 Apigee 上公开 API。API 代理将面向应用的 API 与后端服务分离,从而保护这些应用免受后端代码更改的影响。

按照以下部分中的说明,使用 Apigee in Cloud Code 开发 API 代理。另请参阅管理 Apigee 工作区中的文件夹和文件

创建 API 代理

如需使用 Apigee in Cloud Code 创建 API 代理,请确保您已创建本地开发工作区,然后执行以下操作:

  1. 执行以下操作之一:

    • 在工作区中,将光标悬停在 apiproxies 文件夹上,然后点击 “创建 API 代理”图标

      将光标放在 apiproxies 文件夹上时显示 +

    • 选择 View > Command Palette 以打开 Command Palette,然后选择 Cloud Code: Create Apigee proxy bundle

    此时 Create 代理向导会打开。

  2. 从下列选项中选择一项:

    类型 说明
    Reverse proxy

    用于将传入请求路由到现有 HTTP 后端服务的 API 代理。可以是 JSON 或 XML API。请参阅本部分后面的为 HTTP 服务创建反向代理

    No target

    没有 API 后端的 API 代理(“无目标”)。与为 HTTP 服务创建反向代理类似,但在定义 API 代理详细信息时不指定现有目标网址。

以下各部分介绍了创建每个 API 代理类型所需的其他步骤。

为 HTTP 服务创建反向代理

Apigee 根据以下信息生成反向 API 代理:

  • 后端服务的网址
  • 唯一标识 API 代理将向使用方应用公开的 API 的 URI 路径

创建 API 代理时选择反向代理后,系统会提示您输入安全身份验证API 代理详情,如下表所述。

对于安全身份验证,请选择以下选项之一:

安全身份验证 说明
API key based authentication

对您定义的 API 代理添加 API 密钥验证。Apigee 会自动将以下政策添加到 API 代理:

  • VerifyAPIKey,用于验证请求应用提供的 API 密钥。
  • AssignMessage,用于从转发到后端服务器的请求中移除 API 密钥,该 API 密钥在 API 调用中作为查询参数提供。
Access token based authentication

向您的 API 代理添加基于 OAuth 2.0 的身份验证。Apigee 会自动将以下政策添加到 API 代理:

  • VerifyAPIKey,用于验证访问令牌。
  • AssignMessage,用于移除为身份验证传递的 Authorization 标头。
如需了解如何使用访问令牌进行身份验证,请参阅验证访问令牌
No authentication 无需身份验证。请求将传递给后端,而无需对 Apigee 进行任何安全检查。

对于API 代理详情,响应以下每一个提示,然后按 Enter 键确认并继续,或者按 Esc 键取消向导:

字段 说明
Backend target URL 此 API 代理调用的后端服务网址。
API proxy name 为您的 API 显示的名称。指定字母数字字符、短划线 (-) 或下划线 (_)。
API proxy base path 显示在 API 代理的 http://[host]https://[host] 地址之后的 URI 片段。Apigee 使用基本路径 URI 来将传入的请求消息匹配并路由到适当的 API 代理。

在基本路径中使用通配符

在 API 代理基本路径中使用一个或多个 /*/ 通配符,以使您的 API 代理可适应未来的需求。例如,/team/*/members 的基本路径允许客户端调用 https://[host]/team/blue/membershttps://[host]/team/green/members,而无需创建新的 API 代理来支持新团队。请注意,不支持 /**/

完成向导中的步骤后,新的 apiproxy-name 文件夹会添加到 Apigee 部分中的 apiproxies 下。每个 API 代理文件夹的结构如 API 代理配置目录结构中所述。

以下是为名为 helloworld 的反向 API 代理创建的默认配置的示例,其中添加了支持基于 API 密钥的身份验证的政策。

显示 Apigee 部分中反向代理的文件夹结构。

如需了解默认配置,请参阅探索默认 API 代理配置

创建没有后端目标的 API 代理

创建没有后端目标的 API 代理的过程与创建反向代理相同,但是系统不会提示您为后端服务 (Target (Existing API)) 指定网址,并且不包含默认目标端点配置。如需了解详情,请参阅为 HTTP 服务创建反向代理

探索默认 API 代理配置

根据所选的 API 代理类型和身份验证选项,下表总结了创建 API 代理时默认配置中包含的内容。

配置 fileReverse 代理
反向代理
无目标
OAuthV2 身份验证
API 密钥身份验证
proxies/default.xml
默认代理端点配置
   
targets/default.xml
默认目标端点配置
     
impose-quota.xml
定义默认配额的配额政策
   
remove-header-authorization.xml
移除为身份验证传递的 Authorization 标头的 AssignMessage 政策
   
 
remove-query-param-apikey.xml
移除为身份验证传递的 apikey 查询参数的 AssignMessage 政策
     
verify-api-key.xml
强制执行 API 密钥验证的 VerifyAPIKey 政策
     
verify-oauth-v2-access-token.xml
验证 OAuth V2 访问令牌的 OAuthV2 政策。
   
 

上传 API 代理软件包

如需将 API 代理软件包上传到 Apigee in Cloud Code,请执行以下操作:

  1. 执行以下操作之一:

    • 在 Apigee 部分中,将光标放在 apiproxies 文件夹上,然后点击 “上传 API 代理软件包”图标

    • 选择 View > Command Palette 以打开 Command Palette,然后选择 Cloud Code: Import Apigee proxy bundle

  2. 导航到要上传的 API 代理软件包,然后点击 Import proxy。 API 代理软件包的结构必须符合 API 代理配置目录结构中的说明。

  3. (可选)默认情况下,使用去掉扩展名的 ZIP 文件名称作为 API 代理的名称。如果此名称不是唯一的,系统会提示您输入唯一名称。

上传的 apiproxy-name 文件夹会添加到 Apigee 部分中的 apiproxies 下。

管理代理端点

什么是 API 代理?中所述,代理端点 (ProxyEndpoint) 定义了客户端应用使用 API 的方式。您可以配置代理端点以定义 API 代理的网址。代理端点还确定应用是通过 HTTP 还是 HTTPS 访问 API 代理。您可以向代理端点附加政策,以强制执行安全性、配额检查以及其他类型的访问权限控制和速率限制。

按照以下部分中的说明创建和配置代理端点。

创建代理端点

在您创建 API 代理时,系统会将默认代理端点添加到 API 代理配置中。如需了解详情,请参阅探索默认 API 代理配置。您可以根据需要创建其他代理端点。

如需使用 Apigee in Cloud Code 创建代理端点,请执行以下操作:

  1. 在 Apigee 部分中,执行以下操作之一:

    • 在 Apigee 部分中,将光标放在以下其中一个文件夹上,点击 “创建代理端点”图标,然后选择创建代理端点
      • apiproxy-name 代理软件包
      • apiproxy-name/apiproxy
    • 在 Apigee 部分中,将光标放在 apiproxy-name/apiproxy/proxies 文件夹上,然后点击 “创建代理端点”图标

    此时创建代理端点向导会打开。

  2. 为下一组提示输入相应的值。输入每个值后按 Enter 键确认并继续,或按 Esc 键取消。

    字段 说明
    Proxy endpoint name 用于标识代理端点的名称。
    API proxy base path 用于向 API 发出请求的网址的一部分。Apigee 使用该网址来匹配传入的请求并将其路由到相应的 API 代理。

端点创建完成并添加到 Apigee 部分中的 apiproxy-name/apiproxy/proxies 文件夹中,并在编辑器中打开。按照以下部分中的说明配置代理端点。

配置代理端点

如需配置代理端点,请参阅以下部分:

管理目标端点

什么是 API 代理?所述,目标端点 (TargetEndpoint) 定义了 API 代理与后端服务的互动方式。您可以配置目标端点以将请求转发到正确的后端服务,以及定义任何安全设置、HTTP 或 HTTPS 协议和其他连接信息。您可以附加政策到目标端点,以确保为发出初始请求的应用设置正确的响应消息格式。

按照本部分中说明创建和配置目标端点。

创建目标端点

在您创建反向 API 代理时,系统会将默认目标端点添加到 API 代理配置中。创建没有后端目标的 API 代理时,系统仅将默认代理端点添加到 API 代理配置,而不添加目标端点。如需了解详情,请参阅探索默认 API 代理配置

根据需要创建目标端点。

如需使用 Apigee in Cloud Code 创建目标端点,请执行以下操作:

  1. 在 Apigee 部分中,执行以下操作之一:

    • 在 Apigee 部分中,将光标放在以下其中一个文件夹上,点击 “创建目标端点”图标,然后选择 Create target endpoint
      • apiproxy-name 代理软件包
      • apiproxy-name/apiproxy
    • 在 Apigee 部分中,将光标放在 apiproxy-name/apiproxy/targets 文件夹上,然后点击 “创建目标端点”图标

    此时 Create target endpoint 向导会打开。

  2. 根据要创建的目标端点类型执行以下步骤:

    类型 步骤
    外部 HTTP(s) 目标

    如需定义外部 HTTP(s) 目标,请执行以下操作:

    1. 选择 HTTP(s) target
    2. Target endpoint name 中输入目标端点的名称。
    3. Backend target URL 中输入此目标端点调用的后端服务的网址。

    如需了解详情,请参阅确定目标端点的网址

    代理链

    如需将本地部署的 API 代理定义为目标,请执行以下操作:

    1. 选择 Proxy chaining
    2. Target endpoint name 中输入目标端点的名称。
    3. 选择 API 代理。
    4. 选择代理端点。

    如需了解详情,请参阅将代理链接在一起

    负载均衡的目标

    如需使用在环境中定义的目标服务器定义负载均衡的目标,请执行以下操作:

    1. 选择 Load balanced target
    2. Target endpoint name 中输入目标端点的名称。

    如需了解详情,请参阅配置 TargetEndpoint 以便对已命名的 TargetServer 进行负载均衡

目标端点创建完成并添加到 Apigee 部分中的 apiproxy-name/apiproxy/targets 文件夹中,并在编辑器中打开。按照以下部分中的说明配置目标端点。

配置目标端点

按照以下主题中的说明配置目标端点。