开发 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. 从下列选项中选择一项:

    类型 说明
    Access token-based authentication

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

    • 用于管理代理配额的配额。
    • AssignMessage,用于从转发到后端服务器的请求中移除 API 密钥,该 API 密钥在 API 调用中作为查询参数提供。
    • 使用 OAuthV2 作为身份验证方法。
    API key-based authentication

    使用简单 API 密钥验证的 API 代理。Apigee 会自动将以下政策添加到 API 代理:

    • 用于管理代理配额的配额。
    • VerifyAPIKey,用于验证请求应用提供的 API 密钥。
    • AssignMessage,用于从转发到后端服务器的请求中移除 API 密钥,该 API 密钥在 API 调用中作为查询参数提供。
    Echo request

    用于回传请求的 API 代理。此代理类型没有目标/API 后端,也没有身份验证。系统不会提示您为后端服务 (Target (Existing API)) 指定网址,并且不包含默认目标端点配置。

    Simple reverse proxy

    将请求转发到后端目标的 API 代理。它不包含身份验证,因此请求将传递给后端,而无需进行任何安全检查。

    OpenAPI 3.0 spec

    通过加载现有的 OpenAPI 3.0 规范来创建代理。如需了解详情,请参阅 OpenAPI 计划

  3. 如需了解创建每种代理类型所需的字段(例如基本路径),请参阅 API 代理主要字段。响应每个提示,然后按 Enter 键确认并继续,或者按 Esc 键取消向导。

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

以下是为使用类型 API key-based authentication 创建的 API 代理创建的默认配置的示例。

基于 API 密钥的身份验证代理的文件夹结构

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

探索默认 API 代理配置

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

配置文件
简单的反向代理
回显请求
访问令牌 (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 代理软件包,然后点击 Select。 API 代理软件包的结构必须符合 API 代理配置目录结构中的说明。

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

上传的 apiproxy-name 文件夹会添加到工作区中的 apiproxies 下。

管理代理端点

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

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

创建代理端点

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

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

  1. 在 Apigee 工作区中,执行以下操作之一:

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

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

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

    字段 说明
    Proxy endpoint name 用于标识代理端点的名称。
    API proxy base path 用于向 API 发出请求的网址的一部分。Apigee 使用该网址来匹配传入的请求并将其路由到相应的 API 代理。
    Target endpoint 选择 no targetdefault。如需了解详情,请参阅 ProxyEndpoint 配置元素

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

配置代理端点

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

管理目标端点

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

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

创建目标端点

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

根据需要创建目标端点。

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

  1. 在 Apigee 工作区中,执行以下操作之一:

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

    此时 Create target endpoint 向导会打开。

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

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

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

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

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

    代理链

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

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

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

    负载均衡的目标

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

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

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

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

配置目标端点

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