第六章 HTTP REST API
6.1 接口概览
除TCP SDK外,SXDB还提供HTTP REST API,便于各种语言和工具集成。所有接口基于JSON格式,默认端口31112。

图6-1 Web管理界面首页
6.2 接口列表
| 方法 | 路径 | 功能 | 认证 |
| POST | /api/login | 用户登录,返回token | 无 |
| POST | /api/sql | 执行SQL语句 | Bearer Token |
| GET | /api/databases | 获取数据库列表 | Bearer Token |
| GET | /api/users | 获取用户列表 | Bearer Token |
| GET | /api/logs | 获取操作日志 | Bearer Token |
| GET | /api/metrics | Prometheus指标 | 无 |
6.3 调用示例
cURL调用
登录获取Token
curl -X POST http://localhost:31112/api/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}'
返回: {"code":0,"data":{"token":"eyJhbG..."}}
执行SQL查询
curl -X POST http://localhost:31112/api/sql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbG..." \
-d '{"db":"myapp","sql":"SELECT * FROM users LIMIT 5"}'
Python requests调用
import requests
登录
resp = requests.post("http://localhost:31112/api/login",
json={"username": "admin", "password": "admin123"})
token = resp.json()["data"]["token"]
执行SQL
headers = {"Authorization": f"Bearer {token}"}
result = requests.post("http://localhost:31112/api/sql",
json={"db": "myapp", "sql": "SELECT * FROM users"},
headers=headers)
print(result.json())