0%

论文编辑器系统路由设计(AI生成)

🧩 用户与文档管理系统 API 路由设计(含管理员权限说明)

👤 用户管理模块

功能 URL 请求方法 说明
用户注册 /api/users/register POST 所有用户可操作
用户登录 /api/users/login POST 所有用户可操作
获取当前用户信息 /api/users/me GET 需要身份验证
获取所有用户 /api/users GET 仅限管理员
获取用户详情 /api/users/:userId GET 管理员或本人可访问
更新用户信息 /api/users/:userId PUT 管理员或本人可更新
删除用户 /api/users/:userId DELETE 仅限管理员
修改密码 /api/users/:userId/change-password PUT 用户本人修改密码

📁 文档管理模块

功能 URL 请求方法 权限说明
上传文档 /api/documents POST 所有已登录用户
获取文档列表 /api/documents GET 普通用户只能看到自己上传的文档;管理员可查看全部
获取文档详情 /api/documents/:documentId GET 用户只能查看自己上传的文档;管理员无限制
下载文档 /api/documents/:documentId/download GET 同上
更新文档信息 /api/documents/:documentId PUT 用户只能更新自己上传的文档;管理员可更新所有
删除文档 /api/documents/:documentId DELETE 用户只能删除自己上传的文档;管理员可删除所有
搜索文档 /api/documents/search GET 普通用户只能搜索自己的文档;管理员可全局搜索

🔐 权限控制建议

用户类型

  • 普通用户:只能操作自己创建的文档。
  • 管理员:可以查看、更新、删除所有文档,并管理用户账户。

实现方式

  • 在每个文档中记录 ownerId 字段(即上传者 ID);
  • 接口调用时根据当前用户 ID 和文档的 ownerId 进行比对;
  • 管理员跳过此检查,或通过角色字段判断是否为管理员;
  • 使用中间件统一处理权限校验。

✅ 示例字段结构(供参考)

用户表 (users)

1
2
3
4
5
6
7
{
"id": "string",
"username": "string",
"email": "string",
"password": "string",
"role": "user" or "admin"
}
      ### 文档表 (`documents`)
      
1
2
3
4
5
6
7
8
9
10
{
"id": "string",
"title": "string",
"description": "string",
"tags": ["tag1", "tag2"],
"filePath": "string",
"ownerId": "string (foreign key to users.id)",
"createdAt": "datetime",
"updatedAt": "datetime"
}
--- 如果你希望我生成对应数据库模型(如 MongoDB Schema / SQL 表结构)或者具体后端代码(Node.js / Python / Java 等),也可以告诉我,我可以继续为你扩展。需要吗?