route.ts

route.ts

基本信息

  • 类型: API 路由
  • 路径: ./src/app/api/admin/users/route.ts
  • 路由: /api/admin/users

概述

管理员用户管理接口。支持分页获取用户列表,支持搜索、筛选和排序。

HTTP 方法

  • GET: 获取用户列表

GET - 获取用户列表

Query 参数

参数类型必填说明
pagenumber页码,默认 1
limitnumber每页数量,默认 20,最大 100
searchstring搜索关键词(邮箱、用户名或名称)
sortBystring排序字段: createdAt, email, username, name
sortOrderstring排序方向: asc, desc,默认 desc
filterstring筛选条件

筛选选项

筛选值说明
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 数量
← 返回目录