route.ts
基本信息
- 类型: API 路由
- 路径:
./src/app/api/admin/users/route.ts
- 路由:
/api/admin/users
概述
管理员用户管理接口。支持分页获取用户列表,支持搜索、筛选和排序。
HTTP 方法
GET - 获取用户列表
Query 参数
| 参数 | 类型 | 必填 | 说明 |
| page | number | 否 | 页码,默认 1 |
| limit | number | 否 | 每页数量,默认 20,最大 100 |
| search | string | 否 | 搜索关键词(邮箱、用户名或名称) |
| sortBy | string | 否 | 排序字段: createdAt, email, username, name |
| sortOrder | string | 否 | 排序方向: asc, desc,默认 desc |
| filter | string | 否 | 筛选条件 |
筛选选项
| 筛选值 | 说明 |
| all | 全部(默认) |
| admin | 管理员 |
| user | 普通用户 |
| verified | 已验证用户 |
| unverified | 未验证用户 |
| flagged | 被标记用户 |
响应
成功 (200)
{
"users": [
{
"id": "user_id",
"email": "user@example.com",
"username": "username",
"name": "用户名称",
"avatar": "https://...",
"role": "USER",
"verified": true,
"flagged": false,
"flaggedAt": null,
"flaggedReason": null,
"dailyGenerationLimit": 20,
"generationCreditsRemaining": 15,
"createdAt": "2024-01-01T00:00:00Z",
"_count": {
"prompts": 10
}
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 100,
"totalPages": 5
}
}
错误
未授权 (401)
{
"error": "unauthorized",
"message": "Authentication required"
}
无权限 (403)
{
"error": "forbidden",
"message": "Admin access required"
}
服务器错误 (500)
{
"error": "server_error",
"message": "Failed to fetch users"
}
依赖
next/server - Next.js 服务器组件
@/lib/auth - 认证
@/lib/db - Prisma 数据库客户端
权限
- 需要管理员角色 (role === "ADMIN")
返回字段说明
role: 用户角色 (ADMIN/USER)
verified: 是否已验证
flagged: 是否被标记
flaggedAt: 标记时间
flaggedReason: 标记原因
dailyGenerationLimit: 每日生成限额
generationCreditsRemaining: 剩余生成积分
_count.prompts: Prompt 数量