Skip to content

好友管理

发送好友请求

POST JWT

/api/friend/request

向指定用户发送好友请求。系统会自动检查以下前置条件:不能向自己发送、对方未屏蔽你、双方还不是好友、不存在待处理的请求。

请求成功后,目标用户会通过 WebSocket 收到 friend_request 通知。

请求参数

字段类型必填说明
toIdstring目标用户 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 事件。

请求参数

字段类型必填说明
requestIdstring好友请求 ID
statusstring"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

删除指定好友。双向删除,即双方的好友关系都会被移除。

请求参数

字段类型必填说明
friendIdstring好友的用户 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": "好友已删除"
}