🧩 用户与文档管理系统 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 等),也可以告诉我,我可以继续为你扩展。需要吗?