Open ACE API 文档
本文档描述 Open ACE (AI Computing Explorer) 中可用的 REST API 端点。
概述
- Base URL:
http://localhost:19888/api(默认) - 认证方式: 通过 Cookie 的 session token 或 Authorization 头中的 Bearer token
- Content-Type: 大多数端点使用
application/json
认证
大多数 API 端点需要认证。Session token 可以通过以下方式提供:
- Cookie:
session_token - Header:
Authorization: Bearer <token>
仅管理员可用的端点需要用户具有 admin 角色。
认证 API (/api/auth)
登录
POST /api/auth/login
认证用户并创建会话。
请求体:
{
"username": "string",
"password": "string"
}
响应:
{
"success": true,
"user": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin"
}
}
状态码:
200- 成功400- 缺少用户名或密码401- 凭证无效
登出
POST /api/auth/logout
结束当前会话。
响应:
{
"success": true
}
检查认证状态
GET /api/auth/check
检查当前会话是否有效。
响应:
{
"authenticated": true,
"user": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin"
}
}
获取个人资料
GET /api/auth/profile
获取当前用户的个人资料信息。
响应:
{
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin",
"is_active": true,
"created_at": "2024-01-01T00:00:00Z"
}
修改密码
POST /api/auth/change-password
修改当前用户的密码。
当用户被标记为 must_change_password=true 时,服务端会拒绝其访问大多数受保护接口,直到密码修改完成。此时仅保留以下最小必要接口可用:
GET /api/auth/checkGET /api/auth/meGET /api/auth/profilePOST /api/auth/change-passwordPOST /api/auth/logoutGET /api/password-policy
请求体:
{
"current_password": "string",
"new_password": "string"
}
响应:
{
"success": true,
"message": "Password changed successfully"
}
管理员 API (/api/admin)
所有管理员端点需要 admin 角色。
获取所有用户
GET /api/admin/users
列出系统中所有用户。
响应:
[
{
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin",
"is_active": true,
"created_at": "2024-01-01T00:00:00Z"
}
]
创建用户
POST /api/admin/users
创建新用户。
请求体:
{
"username": "string",
"email": "string",
"password": "string",
"role": "user" // 可选,默认为 "user"
}
响应:
{
"success": true,
"user_id": 2
}
状态码:
201- 创建成功400- 输入无效或用户已存在
更新用户
PUT /api/admin/users/<user_id>
更新用户信息。
请求体:
{
"username": "string", // 可选
"email": "string", // 可选
"role": "string", // 可选
"is_active": true, // 可选
"linux_account": "string" // 可选
}
删除用户
DELETE /api/admin/users/<user_id>
删除用户。不能删除自己。