搜索用户
搜索系统内可添加为好友的用户,已是好友的用户将被排除在结果之外。
| 项目 | 内容 |
|---|---|
| 请求方式 | GET |
| 接口地址 | /api/friends/search |
| 鉴权 | 是,需在请求头中携带 Token |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keyword | string | 是 | 搜索关键词,最长 100 个字符,匹配用户名、姓名、手机号或邮箱 |
| page | int | 否 | 页码,默认 1 |
| per_page | int | 否 | 每页条数,默认 20,最大 50 |
curl -X GET "/api/friends/search?keyword=王五&page=1&per_page=20" \ -H "Authorization: Bearer your_token_here"| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 状态码,0 表示成功 |
| message | string | 响应描述 |
| data.items | array | 用户列表 |
| data.items[].id | int | 用户 ID |
| data.items[].name | string | 姓名 |
| data.items[].username | string | 用户名 |
| data.items[].phone | string | 手机号 |
| data.items[].email | string | 邮箱 |
| data.items[].department_id | int | 所属部门 ID |
| data.items[].department_name | string | 所属部门名称 |
| data.items[].position | string | 职位 |
| data.items[].status | int | 账号状态 |
| data.items[].avatar | string | 头像 URL |
| data.items[].company_name | string | 公司名称 |
| data.items[].is_friend | bool | 是否已是好友(搜索结果中固定为 false) |
| data.pagination.current_page | int | 当前页码 |
| data.pagination.per_page | int | 每页条数 |
| data.pagination.total | int | 总记录数 |
| data.pagination.total_pages | int | 总页数 |
{ "code": 0, "message": "success", "data": { "items": [ { "id": 103, "name": "王五", "username": "wangwu", "phone": "13800138003", "email": "wangwu@example.com", "department_id": 3, "department_name": "市场部", "position": "市场专员", "status": 1, "avatar": "https://devapi.fengshengshou.com/uploads/avatars/103.jpg", "company_name": "丰盛兽科技有限公司", "is_friend": false }, { "id": 104, "name": "王六", "username": "wangliu", "phone": "13800138004", "email": "wangliu@example.com", "department_id": 4, "department_name": "运营部", "position": "运营主管", "status": 1, "avatar": "https://devapi.fengshengshou.com/uploads/avatars/104.jpg", "company_name": "丰盛兽科技有限公司", "is_friend": false } ], "pagination": { "current_page": 1, "per_page": 20, "total": 2, "total_pages": 1 } }}{ "code": 422, "message": "keyword 字段不能为空", "data": null}