汉字自动拆分系统 API
DTO
用户模型 User
{
"id": "user-id",
"name": "User Name",
"email": "[email protected]",
"password": "unhashed",
"avatar": "https://url/to/img",
"role": 2,
"state": 1
}
id
: 用户 ID, 由用户输入, 满足/^[a-zA-Z]+([_-][a-zA-Z0-9]+)*$/
name
: 用户名, 由用户输入, 基本可用任意字符email
: 邮箱, 可代替用户 ID 作登录用, 引入 SMTP 后也可作为找回password
: 用户密码, 为原始密码经 MD5 并 Base64 编码后得到role
: 用户角色, 分为0: 普通; 1: 管理员; 2; 超级管理员
, 只有超级管理员可以修改用户权限state
: 用户状态, 有效值0: 正常; 1: 停用
, 仅超级管理员可修改, 值为1: 停用
时无法登录
用户列表 DataList<User>
{
"total": 50,
"page": 1,
"size": 20,
"items": []
}
total
: 数据库中的用户总数page
: 当前返回的数据分页size
: 当前的分页大小items
: 用户数据列表, 为User[]
模型列表
用户登录请求模型 LoginReq
{
"username": "user-id",
"password": "unhashed"
}
username
: 可以为用户 ID 或用户邮箱, 当包含@
字符时, 作为邮箱处理password
: 用户密码,base64(md5(passwd))
用户登录返回数据模型 Login
{
"user": {},
"token": "header.payload.signature"
}
user
: 用户模型User
token
: JWT 字符串, 在前端请求的任意接口中 (或仅在需要身份验证的接口中), 均 增加Authorization: "Bearer header.payload.signature"
请求头
错误模型 Err
{
"err": "SYS-10000001",
"msg": "系统内部错误"
}
err
(原code
): 只要返回的 JSON 中包含此字段, 说明接口处理错误msg
: 当发生错误时, 一并返回错误描述信息. 一般可将err: msg
展示为 Toast
API
所有接口出错后统一返回 Err
模型, 根据错误类型, 状态码可能为 200
, 4xx
或 5xx
登录 API:
POST /login
: 登录, 传入LoginReq
模型, 返回Login
模型
用户 API:
GET /users?page=1&size=20
: 查询用户列表, 返回DataList<User>
模型GET /users/:id
: 查询用户信息, 返回User
模型POST /users
: 新增用户, 传入User
模型- 需要
Authorization
请求头 - 当前未引入 SMTP 服务, 此接口作用户注册用
- 当库中没有其他用户时, 首位注册用户自动成为 超级管理员
- 需要
DELETE /users/:id
: 删除用户- 需要
Authorization
请求头 - 需要管理员身份
- 需要
PUT /users/:id
: 更新用户, 传入User
模型- 需要
Authorization
请求头 - 当修改的用户与当前登录用户不一致时, 需要管理员身份
- 需要
PUT /users/:id/promote
: 修改用户角色, 传入{ "role": 0 }
, 可用的用户角色类型为0, 1, 2
- 需要
Authorization
请求头 - 需要 超级管理员 身份
- 需要
PUT /users/:id/disable
: 停用用户账户, 传入{ "state": 0 }
, 可用的状态为0, 1
- 需要
Authorization
请求头 - 需要 超级管理员 身份
- 需要
字形管理 API
GET /repertoire?page=1&size=20
, 返回DataList<Character>
GET /repertoire/all
, 查询所有字形数据GET /repertoire/:unicode
: 查询字形信息, 返回Character
POST /repertoire
: 新增字形数据, 传入Character
模型- 需要
Authorization
请求头 - 需要管理员身份
- 需要
POST /repertoire/batch
: 批量添加字形数据- 需要
Authorization
请求头 - 需要管理员身份
- 需要
DELETE /repertoire/:unicode
: 删除字形数据- 需要
Authorization
请求头 - 需要管理员身份
- 需要
PUT /repertoire/:unicode
: 更新字形数据, 传入Character
模型- 需要
Authorization
请求头 - 需要管理员身份
- 需要