feat():learning后台管理项目初始化

This commit is contained in:
yuj
2025-12-04 16:23:46 +08:00
parent 39886d50d2
commit 88e048f4d1
154 changed files with 28966 additions and 6 deletions

179
internal/api/README.md Normal file
View File

@@ -0,0 +1,179 @@
# API 层
本模块负责HTTP API的实现提供RESTful接口。
## 功能特性
- RESTful API设计
- JWT认证中间件
- 跨域支持
- 请求日志记录
- 统一错误处理
- 参数验证
## 模块结构
```
api/
├── middlewares/ # 中间件
│ ├── auth.go # 认证中间件
│ ├── cors.go # 跨域中间件
│ └── logging.go # 日志中间件
├── handlers/ # 请求处理器
│ ├── auth_handler.go # 认证处理器
│ ├── user_handler.go # 用户处理器
│ ├── role_handler.go # 角色处理器
│ └── menu_handler.go # 菜单处理器
├── routes/ # 路由配置
│ └── routes.go # 路由设置
└── README.md # 说明文档
```
## API 接口
### 认证接口
```
POST /api/auth/login # 用户登录
POST /api/auth/logout # 用户登出
GET /api/profile # 获取用户信息
PUT /api/profile # 更新用户信息
PUT /api/change-password # 修改密码
```
### 用户管理接口(管理员)
```
POST /api/admin/users # 创建用户
GET /api/admin/users # 获取用户列表
GET /api/admin/users/:id # 获取用户详情
PUT /api/admin/users/:id # 更新用户
DELETE /api/admin/users/:id # 删除用户
PUT /api/admin/users/:id/status # 更新用户状态
```
### 角色管理接口(管理员)
```
POST /api/admin/roles # 创建角色
GET /api/admin/roles # 获取角色列表
GET /api/admin/roles/:id # 获取角色详情
PUT /api/admin/roles/:id # 更新角色
DELETE /api/admin/roles/:id # 删除角色
PUT /api/admin/roles/:id/status # 更新角色状态
```
### 菜单管理接口(管理员)
```
POST /api/admin/menus # 创建菜单
GET /api/admin/menus # 获取菜单列表
GET /api/admin/menus/tree # 获取菜单树
GET /api/admin/menus/:id # 获取菜单详情
PUT /api/admin/menus/:id # 更新菜单
DELETE /api/admin/menus/:id # 删除菜单
PUT /api/admin/menus/:id/status # 更新菜单状态
PUT /api/admin/menus/:id/sort # 更新菜单排序
```
## 请求示例
### 用户登录
```bash
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "password"
}'
```
### 获取用户列表
```bash
curl -X GET "http://localhost:8080/api/admin/users?page=1&size=10&username=admin" \
-H "Authorization: Bearer your-jwt-token"
```
### 创建用户
```bash
curl -X POST http://localhost:8080/api/admin/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-jwt-token" \
-d '{
"username": "newuser",
"email": "newuser@example.com",
"password": "password",
"nickname": "新用户",
"role": "user"
}'
```
## 响应格式
### 成功响应
```json
{
"code": 200,
"message": "操作成功",
"data": {
"id": 1,
"username": "admin",
"email": "admin@example.com"
}
}
```
### 分页响应
```json
{
"code": 200,
"message": "操作成功",
"data": [...],
"total": 100,
"page": 1,
"size": 10
}
```
### 错误响应
```json
{
"code": 400,
"message": "参数错误"
}
```
## 中间件
### 认证中间件
验证JWT token将用户信息存储到上下文中。
### 管理员中间件
验证用户是否具有管理员权限。
### 跨域中间件
处理跨域请求,支持预检请求。
### 日志中间件
记录HTTP请求日志包括请求方法、路径、状态码、响应时间等。
## 错误处理
所有API都遵循统一的错误处理模式
- 参数验证错误400 Bad Request
- 认证失败401 Unauthorized
- 权限不足403 Forbidden
- 资源不存在404 Not Found
- 服务器错误500 Internal Server Error