Skip to the content.

REST API 参考

所有 API 端点需要 Bearer Token 认证(/api/health 除外)。

Authorization: Bearer <your-api-key>

基础 URL: http://localhost:8000


健康检查

GET /api/health

存活检查,无需认证。

响应:

{"status": "ok"}

数据源

POST /api/datasources/list

列出所有已配置的数据源。

请求体:

{}

响应:

[
  {
    "name": "my-postgres",
    "type": "postgresql",
    "description": "Production PostgreSQL"
  }
]

POST /api/datasources/detail

获取数据源详细信息。

请求体:

{
  "datasource_name": "my-postgres"
}

POST /api/datasources/test

测试数据源连通性。

请求体:

{
  "datasource_name": "my-postgres"
}

响应:

{
  "status": "ok",
  "message": "Connection successful"
}

POST /api/datasources/register

运行时注册新数据源(无需重启)。

请求体:

{
  "name": "new-db",
  "type": "mysql",
  "connection": {
    "host": "127.0.0.1",
    "port": 3306,
    "username": "root",
    "password": "secret",
    "default_database": "mydb"
  }
}

POST /api/datasources/unregister

运行时移除数据源。

请求体:

{
  "datasource_name": "new-db"
}

数据库

POST /api/databases/list

列出数据源中可用的数据库。

请求体:

{
  "datasource_name": "my-postgres"
}

响应:

[
  {"name": "mydb", "comment": "主应用数据库"},
  {"name": "analytics", "comment": ""}
]

Schema

POST /api/schema/get

获取数据库完整 Schema(表和列信息)。

请求体:

{
  "datasource_name": "my-postgres",
  "database": "mydb"
}

响应:

{
  "tables": [
    {
      "name": "users",
      "columns": [
        {"name": "id", "type": "INT4", "nullable": false, "comment": "主键"},
        {"name": "username", "type": "VARCHAR", "nullable": false, "comment": ""}
      ]
    }
  ]
}

POST /api/schema/table

获取指定表的详细信息。

请求体:

{
  "datasource_name": "my-postgres",
  "database": "mydb",
  "table": "users"
}

POST /api/schema/view

获取指定视图的详细信息。

请求体:

{
  "datasource_name": "my-postgres",
  "database": "mydb",
  "view": "active_users_view"
}

查询

POST /api/query/execute

执行 SQL 查询。

请求体:

{
  "datasource_name": "my-postgres",
  "database": "mydb",
  "sql": "SELECT id, username FROM users LIMIT 10"
}

响应:

{
  "columns": ["id", "username"],
  "rows": [[1, "alice"], [2, "bob"]],
  "row_count": 2
}

POST /api/query/explain

获取查询执行计划。

请求体:

{
  "datasource_name": "my-postgres",
  "database": "mydb",
  "sql": "SELECT * FROM users WHERE id = 1"
}

异步查询

POST /api/async/query/submit

提交长时间运行的异步查询。

请求体:

{
  "datasource_name": "my-postgres",
  "database": "mydb",
  "sql": "SELECT * FROM large_table"
}

响应:

{
  "query_id": "abc123-def456"
}

POST /api/async/query/status

查询异步查询状态。

请求体:

{
  "query_id": "abc123-def456"
}

响应:

{
  "query_id": "abc123-def456",
  "status": "completed"
}

POST /api/async/query/result

获取已完成的异步查询结果。

请求体:

{
  "query_id": "abc123-def456"
}

POST /api/async/query/cancel

取消正在运行的异步查询。

请求体:

{
  "query_id": "abc123-def456"
}

工具

GET /api/tools

列出所有已注册的工具(内置和动态)。

响应:

[
  {
    "name": "get_user_orders",
    "description": "获取用户最近订单",
    "parameters": [...]
  }
]

POST /api/tool/register

注册新的动态工具。

请求体:

{
  "name": "get_user_orders",
  "description": "获取用户最近订单",
  "datasource": "my-postgres",
  "database": "mydb",
  "sql": "SELECT * FROM orders WHERE user_id = :user_id LIMIT :limit",
  "parameters": [
    {"name": "user_id", "type": "integer", "required": true},
    {"name": "limit", "type": "integer", "default": 10}
  ]
}

POST /api/tool/unregister

移除动态工具。

请求体:

{
  "tool_name": "get_user_orders"
}

POST /api/tool/{name}

按名称执行已注册的工具。

请求体:

{
  "user_id": 42,
  "limit": 5
}

MCP 端点

POST /mcp

MCP 协议 JSON-RPC 2.0 端点。

请求体:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_datasources",
    "arguments": {}
  }
}

详见 MCP 工具 了解所有可用工具名和参数。