2.2 KiB
2.2 KiB
Users 协议
本文档定义 /api/v1/users 的用户管理协议。
Base URL: /api/v1/users
端点
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /me |
获取当前用户信息 |
| PATCH | /me |
更新当前用户信息 |
| POST | /me/avatar |
上传头像图片并更新头像地址 |
| POST | /search |
搜索用户 |
| GET | /{user_id} |
获取指定用户信息 |
UserContext 数据结构
{
"id": "uuid",
"username": "string",
"phone": "+14155552671 | null",
"avatar_url": "https://... | null",
"bio": "string | null",
"settings": {
"version": 1,
"preferences": {
"interface_language": "zh-CN",
"ai_language": "zh-CN",
"timezone": "Asia/Shanghai",
"country": "CN"
},
"privacy": {},
"notification": {}
}
}
字段说明:
id: 用户唯一标识符 (UUID)username: 用户名,3-30 字符phone: E.164 格式手机号,可为 nullavatar_url: 头像 URL,可为 nullbio: 个人简介,最大 200 字符,可为 nullsettings: 用户偏好设置
1) GET /me
获取当前登录用户信息。
Request
无请求体。
Response
UserContext 对象。
2) PATCH /me
更新当前用户信息(部分更新)。
Request
{
"username": "newname",
"avatar_url": "https://example.com/avatar.jpg",
"bio": "Hello world"
}
至少提供一个字段。
Response
更新后的 UserContext 对象。
3) POST /search
按用户名或手机号搜索用户。
Request
{
"query": "john"
}
query 最小 1 字符,最大 100 字符。
Response
UserContext 对象数组。
4) POST /me/avatar
上传头像(multipart/form-data)。
Request
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
file |
file | 是 | 图片文件(image/jpeg / image/png / image/webp) |
Response
{
"url": "https://..."
}
说明:
- 上传成功后后端会同步更新当前用户
avatar_url。 - 文件大小上限由后端配置
storage.avatar.max_size_mb控制。
5) GET /{user_id}
获取指定用户信息。
Path Parameters
user_id: 用户 UUID
Response
UserContext 对象。