Kong API 列表加 curl 访问案例 通过 curl 修改 router 的 method

一、Kong API 列表加 curl 访问案例

为了方便你管理和配置 Kong,我为你整理了一份核心 Kong Admin API 列表 ,并为每个接口配备了实用的 curl 访问案例

这些 API 默认通过 8001 端口进行管理(http://:8001)[[source_group_web_1]]。

  1. Service (服务) 管理
    Service 代表你的上游应用(如 Nacos、订单服务等)。
功能 Curl 命令案例 说明
创建 Service curl -X POST http://localhost:8001/services \\<br/>--data "name=nacos" \\<br/>--data "url=http://192.168.1.50:8848" 创建名为 nacos 的服务,指向内网 IPsource_group_web_2。
查询所有 Services curl -X GET http://localhost:8001/services 列出所有已注册的服务。
查询特定 Service curl -X GET http://localhost:8001/services/nacos 根据名称查询。
更新 Service curl -X PATCH http://localhost:8001/services/nacos \\<br/>--data "retries=3" 修改重试次数等参数。
删除 Service curl -X DELETE http://localhost:8001/services/nacos 删除服务(关联路由通常也会被删除)。
  1. Route (路由) 管理
    Route 定义了如何将客户端请求转发给 Service。
功能 Curl 命令案例 说明
创建 Route curl -X POST http://localhost:8001/services/nacos/routes \\<br/>--data "paths[]=/nacos" \\<br/>--data "strip_path=true" /nacos 路径的请求转发给 nacos 服务source_group_web_3。
查询所有 Routes curl -X GET http://localhost:8001/routes 查看所有路由规则。
通过 Host 匹配 curl -X POST http://localhost:8001/services/nacos/routes \\<br/>--data "hosts[]=api.example.com" 配置基于域名的访问。
删除 Route curl -X DELETE http://localhost:8001/routes/{route-id} 根据 Route 的 ID 删除。
  1. Upstream & Target (负载均衡)
    用于配置多个节点的负载均衡(如 Nacos 集群)。
功能 Curl 命令案例 说明
创建 Upstream curl -X POST http://localhost:8001/upstreams \\<br/>--data "name=nacos-cluster" \\<br/>--data "algorithm=round-robin" 创建一个名为 nacos-cluster 的上游组source_group_web_4。
添加 Target 节点 curl -X POST http://localhost:8001/upstreams/nacos-cluster/targets \\<br/>--data "target=192.168.1.50:8848" \\<br/>--data "weight=100" 为上游组添加一个真实节点source_group_web_5。
查看节点状态 curl -X GET http://localhost:8001/upstreams/nacos-cluster/targets 查看集群中节点的健康状态。
  1. Plugin (插件) 管理
    用于开启鉴权、限流等功能。
功能 Curl 命令案例 说明
开启 Key 鉴权 curl -X POST http://localhost:8001/services/nacos/plugins \\<br/>--data "name=key-auth" 为 Nacos 服务开启 Key 认证。
开启限流 curl -X POST http://localhost:8001/plugins \\<br/>--data "name=rate-limiting" \\<br/>--data "config.minute=10" 全局限流,每分钟最多 10 次请求source_group_web_6。
查看插件 curl -X GET http://localhost:8001/plugins 列出当前生效的所有插件。
  1. Consumer (消费者) 管理
    配合鉴权插件使用,代表调用 API 的用户或应用。
功能 Curl 命令案例 说明
创建用户 curl -X POST http://localhost:8001/consumers \\<br/>--data "username=my-app" 创建一个名为 my-app 的消费者source_group_web_7。
生成 API Key curl -X POST http://localhost:8001/consumers/my-app/key-auth \\<br/>--data "key=abc123xyz" 为用户生成具体的 Keysource_group_web_8。
  1. 状态与信息
功能 Curl 命令案例 说明
查看 Kong 状态 curl -X GET http://localhost:8001/status 查看 Kong 版本、数据库连接状态等source_group_web_9。
查看所有配置 curl -X GET http://localhost:8001 返回节点的基本信息。

💡 使用小贴士

  1. 端口区分:8000 是对外提供服务的端口(客户端访问),8001 是管理端口(执行上述 curl 命令)[[source_group_web_10]]。
  2. JSON 格式:部分复杂配置建议使用 --header 'Content-Type: application/json' 并配合 -d '{json}' 传参。
  3. ID 的使用:在查询或删除时,如果提示找不到名称,通常是因为 Kong 自动生成了 ID,建议先查列表获取确切的 id 或 name。

二、通过 curl 修改 router 的 method

通过 curl 修改 Kong 路由(Router/Route)的请求方法(Methods),主要使用 PATCH 请求来更新路由配置。

以下是具体的操作步骤和命令示例:

  1. 核心命令:修改 Methods

假设你要修改的路由 ID 是 route-id-123,或者你可以通过名称引用(如果支持)。

复制代码
curl -X PATCH http://localhost:8001/routes/ \
  --data "methods[]=GET" \
  --data "methods[]=POST" \
  --data "methods[]=PUT"
  • :替换为你的路由实际的 ID 或名称。
  • methods[]:后面跟上你允许的 HTTP 方法。注意: 这里的配置是覆盖原有配置,而不是追加。
  1. 操作步骤详解

为了确保准确,建议按以下流程操作:

步骤 1:查找路由 ID 或名称

如果你不确定路由的 ID,先查询列表:

查询所有路由

复制代码
curl -X GET http://localhost:8001/routes

或者根据服务查询(假设服务名为 nacos)

复制代码
curl -X GET http://localhost:8001/services/nacos/routes

在返回的 JSON 结果中,找到对应的 id 或 name。

步骤 2:执行修改

假设你的路由 ID 是 abc-def-ghi,现在只允许 GET 和 POST 请求:

复制代码
curl -X PATCH http://localhost:8001/routes/abc-def-ghi \
  --data "methods[]=GET" \
  --data "methods[]=POST"

步骤 3:验证修改

再次获取路由详情,检查 methods 字段是否已更新:

复制代码
curl -X GET http://localhost:8001/routes/abc-def-ghi
  1. 常见场景示例
  • 场景 A:只允许 GET 请求

    复制代码
          curl -X PATCH http://localhost:8001/routes/your-route-id --data "methods[]=GET"
  • 场景 B:允许所有常见方法

    复制代码
          curl -X PATCH http://localhost:8001/routes/your-route-id \
        --data "methods[]=GET" \
        --data "methods[]=POST" \
        --data "methods[]=PUT" \
        --data "methods[]=DELETE" \
        --data "methods[]=PATCH" \
        --data "methods[]=HEAD"

⚠️ 注意事项

  1. 覆盖逻辑 :使用 PATCH 设置 methods 时,新传入的列表会完全替换旧的列表。例如,原先是 [GET, POST],如果你只传入 [PUT],那么最终结果只有 PUT,GET 和 POST 会被移除。
  2. 删除 Methods 限制:如果你想取消 Methods 的限制(即允许所有方法),可以将其设置为空(不传 methods 参数)或者在某些版本中传 null,但通常 Kong 默认不限定 Methods。如果之前设定了 Methods,现在想取消限定,建议删除该路由并重新创建一个不带 Methods 限制的路由。
  3. 大小写:Methods 通常建议大写(GET, POST),虽然 Kong 可能不区分大小写,但为了规范,建议统一大写。
相关推荐
ShuiShenHuoLe2 小时前
maven配置阿里源
java·数据库·maven
H_z_q24012 小时前
RHCE的时间服务器与NTP、chrony
java·运维·服务器
悟空码字2 小时前
三步搞定短信验证码!SpringBoot集成阿里云短信实战
java·spring boot·后端
码农爱学习2 小时前
C语言结构体对齐是怎么计算
java·c语言·数据库
黎雁·泠崖2 小时前
吃透Java操作符入门:分类差异+进制转换+原反补码 核心前置知识(Java&C对比)
java·c语言·开发语言
天天摸鱼的java工程师2 小时前
volatile 关键字底层原理:为什么它不能保证原子性?
java·后端
钟良堂2 小时前
Java完整实现 MinIO 对象存储搭建+封装全套公共方法+断点上传功能
java·minio·断点上传
名字不好奇2 小时前
C++虚函数表失效???
java·开发语言·c++
u0104058362 小时前
Java中的服务监控:Prometheus与Grafana的集成
java·grafana·prometheus