跳到主要内容
版本:3.10.x

教程:通过插件代理和管理 API 请求

本教程以快速开始为基础,带你完成一个贴近实际的场景:通过 API7 网关代理 API 请求,并使用插件实施认证和限流。

你将学到

  1. 为后端 API 创建服务和路由
  2. 添加 key-auth 插件以要求 API Key 认证
  3. 创建带有凭证的消费者
  4. 添加 limit-count 插件以实施限流
  5. 测试完整配置

预计用时:约 15 分钟

前提条件:已运行的 API7 网关实例。如果尚未设置,请先完成快速开始。如果要跟随 Admin API 示例,请在开始前从控制台获取令牌。

第 1 步:创建服务和路由

创建一个代理到 httpbin.org 服务的服务:

  1. 在控制台侧边栏中进入默认网关组,然后点击 Services
  2. 点击 Add Service,再点击 Add Manually
  3. 配置服务:
字段
名称demo-api
服务类型HTTP (Layer 7 Proxy)
上游协议HTTP
如何查找上游Use Nodes
  1. 点击 Add Node,并进行如下配置:
字段
主机httpbin.org
端口80
权重100
  1. 点击 Add 创建服务。
  2. 点击 demo-api 服务,然后点击 Add Route
  3. 配置路由:
字段
名称get-request
路径/get
方法GET
  1. 点击 Add

第 2 步:验证代理

在添加插件前,测试路由以验证基本配置:

curl -i "http://localhost:9080/get"

你应收到包含 HTTPBin 响应正文的 200 OK 响应,这表示代理工作正常。

第 3 步:启用 key-auth 插件

key-auth 插件要求消费者提供有效的 API Key。

  1. 默认网关组中,进入 Services 并点击 demo-api 服务。
  2. 点击 Plugins,再点击 Enable Plugin
  3. 搜索 key-auth 并启用它。
  4. 使用默认配置并点击 Submit

不带密钥测试

curl -i "http://localhost:9080/get"

预期响应:

HTTP/1.1 401 Unauthorized
{"message":"Missing API key in request"}

第 4 步:创建消费者

创建一个带有 API Key 凭证的消费者:

  1. 在控制台侧边栏中进入 Consumers,然后点击 Create Consumer
  2. 配置消费者:
字段
名称test-consumer
  1. 点击 Submit 创建消费者。
  2. 点击 test-consumer消费者以打开它,然后选择 Credentials 选项卡。
  3. 点击 Create Credential,并选择 key-auth 作为类型。
  4. 配置凭证:
字段
名称test-consumer-key
密钥my-secret-api-key
  1. 点击 Submit

使用 API Key 测试

curl -i "http://localhost:9080/get" -H "apikey: my-secret-api-key"

预期响应:200 OK

第 5 步:启用限流

添加 limit-count 插件,以限制消费者可以发出的请求数量。

  1. 默认网关组中,进入 Services 并点击 demo-api 服务。
  2. 点击 Plugins,再点击 Enable Plugin
  3. 搜索 limit-count 并按如下配置:
{
"count": 5,
"time_window": 60,
"rejected_code": 429,
"key_type": "var",
"key": "consumer_name",
"policy": "local"
}
  1. 点击 Submit

测试限流

快速连续发送多个请求:

for i in $(seq 1 6); do
echo "Request $i:"
curl -s -o /dev/null -w "HTTP %{http_code}\n" \
http://localhost:9080/get -H "apikey: my-secret-api-key"
done

预期输出:

Request 1: HTTP 200
Request 2: HTTP 200
Request 3: HTTP 200
Request 4: HTTP 200
Request 5: HTTP 200
Request 6: HTTP 429

后续步骤

  • 深入了解 API7 产品和 APISIX:了解完整的 API7 产品生态系统。
  • 配置控制面:为生产环境微调控制面。
  • 监控网关指标:监控网关流量。