Appearance
好友管理
发送好友请求
POST JWT
/api/friend/request
向指定用户发送好友请求。系统会自动检查以下前置条件:不能向自己发送、对方未屏蔽你、双方还不是好友、不存在待处理的请求。
请求成功后,目标用户会通过 WebSocket 收到 friend_request 通知。
请求参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| toId | string | 是 | 目标用户 ID |
请求示例:
bash
curl -X POST http://localhost:3000/api/friend/request \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{ "toId": "u_def456" }'成功响应:
json
{
"code": 200,
"message": "好友请求已发送"
}错误场景:
| 条件 | 响应 |
|---|---|
| 向自己发送 | { "code": 400, "msg": "不能添加自己为好友" } |
| 已经是好友 | { "code": 400, "msg": "已经是好友关系" } |
| 已有待处理请求 | { "code": 400, "msg": "已发送过好友请求,请等待对方处理" } |
| 被对方屏蔽 | { "code": 403, "msg": "无法发送好友请求" } |
处理好友请求
POST JWT
/api/friend/respond
接受或拒绝好友请求。接受后系统自动创建双向好友关系,并通过 WebSocket 通知双方 friend_accepted 事件。
请求参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| requestId | string | 是 | 好友请求 ID |
| status | string | 是 | "accepted" 或 "rejected" |
请求示例:
bash
curl -X POST http://localhost:3000/api/friend/respond \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"requestId": "fr_abc123",
"status": "accepted"
}'获取好友列表
GET JWT
/api/friends
获取当前用户的好友列表,包含在线状态。
请求示例:
bash
curl http://localhost:3000/api/friends \
-H "Authorization: Bearer <token>"成功响应:
json
{
"code": 200,
"data": [
{
"id": "u_def456",
"username": "lisi",
"avatar": "",
"bio": "",
"isOnline": 1
}
]
}获取待处理好友请求
GET JWT
/api/friend/requests
获取发给当前用户的待处理好友请求列表,按时间倒序排列。
请求示例:
bash
curl http://localhost:3000/api/friend/requests \
-H "Authorization: Bearer <token>"成功响应:
json
{
"code": 200,
"data": [
{
"id": "fr_abc123",
"from_id": "u_ghi789",
"from_name": "王五",
"create_time": 1719000000000
}
]
}删除好友
POST JWT
/api/friend/delete
删除指定好友。双向删除,即双方的好友关系都会被移除。
请求参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| friendId | string | 是 | 好友的用户 ID |
请求示例:
bash
curl -X POST http://localhost:3000/api/friend/delete \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{ "friendId": "u_def456" }'成功响应:
json
{
"code": 200,
"message": "好友已删除"
}