API_EXAMPLES.md 2.7 KB

Connection Pool API Examples

连接池管理接口用于在后端运行时直接管理数据库连接,所有请求均使用 POST,并返回统一的 JSON 响应结构。

注意:系统会自动将客户端的 IP 附加到连接池内部使用的 conn_id(例如 mysql_primary@127-0-0-1),响应内容会返回最终 ID。客户端在请求体中仍然只需要提交原始 conn_id,系统会基于发起请求的 IP 自动完成匹配。

1. 注册新连接

curl -X POST http://localhost:8080/api/v1/connection_pool/register \
  -H "Content-Type: application/json" \
  -d '{
    "conn_id": "mysql_primary",
    "db_detail": {
      "type": "mysql",
      "version": "v8",
      "host": "127.0.0.1",
      "port": 3306,
      "username": "root",
      "password": "secret",
      "database": "demo",
      "schema": "demo"
    },
    "config": {
      "max_open_conns": 10,
      "max_idle_conns": 5,
      "max_idle_time_seconds": 300,
      "max_lifetime_seconds": 600
    }
  }'

响应示例

{
  "code": 0,
  "msg": "注册连接成功",
  "data": {
    "conn_id": "mysql_primary@127-0-0-1",
    "type": "mysql",
    "version": "v8",
    "last_used": "2024-03-12T10:21:33.456789+08:00",
    "connected": true,
    "max_idle_time_seconds": 300,
    "max_lifetime_seconds": 600,
    "max_open_conns": 10,
    "max_idle_conns": 5
  }
}

2. 查看连接池状态

curl -X POST http://localhost:8080/api/v1/connection_pool/stats \
  -H "Content-Type: application/json" \
  -d '{}'

响应示例

{
  "code": 0,
  "msg": "操作成功",
  "data": {
    "connections": [
      {
        "conn_id": "mysql_primary@127-0-0-1",
        "type": "mysql",
        "version": "v8",
        "last_used": "2024-03-12T10:21:33.456789+08:00",
        "connected": true,
        "max_idle_time_seconds": 300,
        "max_lifetime_seconds": 600,
        "max_open_conns": 10,
        "max_idle_conns": 5
      }
    ]
  }
}

3. 检测连接可用性

curl -X POST http://localhost:8080/api/v1/connection_pool/ping \
  -H "Content-Type: application/json" \
  -d '{
    "conn_id": "mysql_primary"
  }'

响应示例

{
  "code": 0,
  "msg": "连接可用"
}

4. 关闭指定连接

curl -X POST http://localhost:8080/api/v1/connection_pool/close \
  -H "Content-Type: application/json" \
  -d '{
    "conn_id": "mysql_primary"
  }'

响应示例

{
  "code": 0,
  "msg": "连接已关闭"
}

5. 关闭全部连接

curl -X POST http://localhost:8080/api/v1/connection_pool/close_all \
  -H "Content-Type: application/json" \
  -d '{}'

响应示例

{
  "code": 0,
  "msg": "所有连接已关闭"
}