refactor(backend): 更新数据库配置并迁移至MySQL,优化文档和技术栈描述
This commit is contained in:
@@ -2,12 +2,16 @@
|
||||
|
||||
## 基础信息
|
||||
|
||||
**Base URL**: `http://localhost:3000/api/v1`
|
||||
**Base URL**: `http://localhost:3100/api/v1`
|
||||
|
||||
**认证方式**: Bearer Token (JWT)
|
||||
|
||||
**响应格式**: JSON
|
||||
|
||||
**API版本**: v1
|
||||
|
||||
**开发状态**: 开发中
|
||||
|
||||
## 响应格式
|
||||
|
||||
### 成功响应
|
||||
@@ -34,6 +38,19 @@
|
||||
}
|
||||
```
|
||||
|
||||
## 通用状态码
|
||||
|
||||
| 状态码 | 说明 |
|
||||
|--------|------|
|
||||
| 200 | 请求成功 |
|
||||
| 201 | 创建成功 |
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未授权访问 |
|
||||
| 403 | 权限不足 |
|
||||
| 404 | 资源不存在 |
|
||||
| 429 | 请求过于频繁 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
## 认证接口
|
||||
|
||||
### 1. 用户注册
|
||||
@@ -94,26 +111,6 @@
|
||||
}
|
||||
```
|
||||
|
||||
### 2.1 微信登录
|
||||
|
||||
**Endpoint**: `POST /auth/wechat-login`
|
||||
|
||||
**描述**: 微信授权登录
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
{
|
||||
"code": "string, required, 微信授权码",
|
||||
"userInfo": {
|
||||
"nickName": "string, optional, 微信昵称",
|
||||
"avatarUrl": "string, optional, 微信头像",
|
||||
"gender": "number, optional, 性别(0:未知,1:男,2:女)"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**响应**: 同登录接口
|
||||
|
||||
**响应**:
|
||||
```json
|
||||
{
|
||||
@@ -139,7 +136,83 @@
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 微信登录
|
||||
### 3. 获取当前用户信息
|
||||
|
||||
**Endpoint**: `GET /auth/me`
|
||||
|
||||
**认证**: 需要Bearer Token
|
||||
|
||||
**描述**: 获取当前登录用户信息
|
||||
|
||||
**响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"data": {
|
||||
"user": {
|
||||
"id": 1,
|
||||
"username": "testuser",
|
||||
"nickname": "测试用户",
|
||||
"email": "test@example.com",
|
||||
"phone": "13800138000",
|
||||
"avatar": "https://example.com/avatar.jpg",
|
||||
"gender": "male",
|
||||
"birthday": "1990-01-01",
|
||||
"points": 1000,
|
||||
"level": 3,
|
||||
"balance": 500.00,
|
||||
"travel_count": 5,
|
||||
"animal_adopt_count": 2,
|
||||
"flower_order_count": 3,
|
||||
"status": "active",
|
||||
"created_at": "2025-01-01T00:00:00.000Z",
|
||||
"updated_at": "2025-01-01T00:00:00.000Z",
|
||||
"last_login_at": "2025-01-01T00:00:00.000Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 4. 更新用户信息
|
||||
|
||||
**Endpoint**: `PUT /auth/profile`
|
||||
|
||||
**认证**: 需要Bearer Token
|
||||
|
||||
**描述**: 更新用户个人信息
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
{
|
||||
"nickname": "string, optional, 昵称",
|
||||
"avatar": "string, optional, 头像URL",
|
||||
"gender": "string, optional, 性别(male/female/other)",
|
||||
"birthday": "string, optional, 生日(YYYY-MM-DD)"
|
||||
}
|
||||
```
|
||||
|
||||
**响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "用户信息更新成功",
|
||||
"data": {
|
||||
"user": {
|
||||
"id": 1,
|
||||
"username": "testuser",
|
||||
"nickname": "新昵称",
|
||||
"avatar": "https://example.com/new-avatar.jpg",
|
||||
"gender": "male",
|
||||
"birthday": "1990-01-01",
|
||||
"updated_at": "2025-01-01T00:00:00.000Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 5. 微信登录
|
||||
|
||||
**Endpoint**: `POST /auth/wechat-login`
|
||||
|
||||
@@ -157,7 +230,28 @@
|
||||
}
|
||||
```
|
||||
|
||||
**响应**: 同登录接口
|
||||
**响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "微信登录成功",
|
||||
"data": {
|
||||
"user": {
|
||||
"id": 1,
|
||||
"username": "testuser",
|
||||
"nickname": "测试用户",
|
||||
"avatar": "https://example.com/avatar.jpg",
|
||||
"gender": "male",
|
||||
"points": 100,
|
||||
"level": 2,
|
||||
"status": "active",
|
||||
"last_login_at": "2025-01-01T00:00:00.000Z"
|
||||
},
|
||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 4. 获取当前用户信息
|
||||
|
||||
@@ -197,21 +291,21 @@
|
||||
}
|
||||
```
|
||||
|
||||
### 5. 更新用户信息
|
||||
### 6. 更新用户信息
|
||||
|
||||
## 管理员接口
|
||||
**Endpoint**: `PUT /auth/profile`
|
||||
|
||||
### 6. 管理员登录
|
||||
**认证**: 需要Bearer Token
|
||||
|
||||
**Endpoint**: `POST /auth/admin/login`
|
||||
|
||||
**描述**: 管理员登录获取访问令牌
|
||||
**描述**: 更新用户个人信息
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
{
|
||||
"username": "string, required, 管理员用户名",
|
||||
"password": "string, required, 密码"
|
||||
"nickname": "string, optional, 昵称",
|
||||
"avatar": "string, optional, 头像URL",
|
||||
"gender": "string, optional, 性别(male/female/other)",
|
||||
"birthday": "string, optional, 生日(YYYY-MM-DD)"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -220,36 +314,215 @@
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "登录成功",
|
||||
"message": "用户信息更新成功",
|
||||
"data": {
|
||||
"user": {
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "admin@jiebanke.com",
|
||||
"real_name": "管理员",
|
||||
"avatar": "",
|
||||
"status": "active",
|
||||
"last_login_at": "2025-01-01T00:00:00.000Z"
|
||||
},
|
||||
"roles": [
|
||||
"username": "testuser",
|
||||
"nickname": "新昵称",
|
||||
"avatar": "https://example.com/new-avatar.jpg",
|
||||
"gender": "male",
|
||||
"birthday": "1990-01-01",
|
||||
"updated_at": "2025-01-01T00:00:00.000Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 用户服务接口
|
||||
|
||||
### 1. 获取用户列表
|
||||
|
||||
**Endpoint**: `GET /users`
|
||||
|
||||
**认证**: 需要Bearer Token
|
||||
|
||||
**描述**: 获取用户列表(管理员权限)
|
||||
|
||||
**查询参数**:
|
||||
- `page` (可选): 页码,默认1
|
||||
- `limit` (可选): 每页数量,默认20
|
||||
- `username` (可选): 用户名模糊搜索
|
||||
- `status` (可选): 状态过滤
|
||||
|
||||
**响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"data": {
|
||||
"users": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "admin",
|
||||
"description": "普通管理员"
|
||||
"id": 1,
|
||||
"username": "testuser",
|
||||
"nickname": "测试用户",
|
||||
"email": "test@example.com",
|
||||
"phone": "13800138000",
|
||||
"avatar": "https://example.com/avatar.jpg",
|
||||
"gender": "male",
|
||||
"points": 100,
|
||||
"level": 2,
|
||||
"status": "active",
|
||||
"created_at": "2025-01-01T00:00:00.000Z"
|
||||
}
|
||||
],
|
||||
"permissions": [
|
||||
"user:manage",
|
||||
"content:review",
|
||||
"content:publish",
|
||||
"data:view",
|
||||
"data:export"
|
||||
],
|
||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
|
||||
"pagination": {
|
||||
"total": 100,
|
||||
"page": 1,
|
||||
"limit": 20,
|
||||
"pages": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 获取用户详情
|
||||
|
||||
**Endpoint**: `GET /users/{id}`
|
||||
|
||||
**认证**: 需要Bearer Token
|
||||
|
||||
**描述**: 获取指定用户的详细信息
|
||||
|
||||
**响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"data": {
|
||||
"user": {
|
||||
"id": 1,
|
||||
"username": "testuser",
|
||||
"nickname": "测试用户",
|
||||
"email": "test@example.com",
|
||||
"phone": "13800138000",
|
||||
"avatar": "https://example.com/avatar.jpg",
|
||||
"gender": "male",
|
||||
"birthday": "1990-01-01",
|
||||
"points": 1000,
|
||||
"level": 3,
|
||||
"balance": 500.00,
|
||||
"travel_count": 5,
|
||||
"animal_adopt_count": 2,
|
||||
"flower_order_count": 3,
|
||||
"status": "active",
|
||||
"created_at": "2025-01-01T00:00:00.000Z",
|
||||
"updated_at": "2025-01-01T00:00:00.000Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 8. 管理员接口
|
||||
|
||||
### 8.1 管理员登录
|
||||
- **Endpoint**: POST /api/v1/admin/login
|
||||
- **认证要求**: 无
|
||||
- **描述**: 管理员登录系统
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"username": "admin",
|
||||
"password": "password123"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "登录成功",
|
||||
"data": {
|
||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
||||
"admin": {
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "admin@example.com",
|
||||
"nickname": "超级管理员",
|
||||
"avatar": "https://example.com/avatar.jpg",
|
||||
"role": "super_admin",
|
||||
"status": 1,
|
||||
"last_login": "2024-01-15T10:30:00.000Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 8.2 获取管理员信息
|
||||
- **Endpoint**: GET /api/v1/admin/profile
|
||||
- **认证要求**: Bearer Token
|
||||
- **描述**: 获取当前登录管理员信息
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "admin@example.com",
|
||||
"nickname": "超级管理员",
|
||||
"avatar": "https://example.com/avatar.jpg",
|
||||
"role": "super_admin",
|
||||
"status": 1,
|
||||
"last_login": "2024-01-15T10:30:00.000Z",
|
||||
"created_at": "2024-01-01T00:00:00.000Z",
|
||||
"updated_at": "2024-01-15T10:30:00.000Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 8.3 更新管理员信息
|
||||
- **Endpoint**: PUT /api/v1/admin/profile
|
||||
- **认证要求**: Bearer Token
|
||||
- **描述**: 更新当前登录管理员信息
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"nickname": "新昵称",
|
||||
"email": "newemail@example.com",
|
||||
"avatar": "https://example.com/new-avatar.jpg"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "更新成功",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "newemail@example.com",
|
||||
"nickname": "新昵称",
|
||||
"avatar": "https://example.com/new-avatar.jpg",
|
||||
"role": "super_admin",
|
||||
"status": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 8.4 修改密码
|
||||
- **Endpoint**: PUT /api/v1/admin/password
|
||||
- **认证要求**: Bearer Token
|
||||
- **描述**: 修改当前登录管理员密码
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"old_password": "oldpassword123",
|
||||
"new_password": "newpassword456"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "密码修改成功"
|
||||
}
|
||||
```
|
||||
|
||||
### 7. 获取管理员信息
|
||||
|
||||
**Endpoint**: `GET /auth/admin/me`
|
||||
@@ -293,26 +566,23 @@
|
||||
}
|
||||
```
|
||||
|
||||
### 8. 用户管理接口
|
||||
### 9. 用户管理接口
|
||||
|
||||
#### 8.1 获取用户列表
|
||||
|
||||
**Endpoint**: `GET /admin/users`
|
||||
|
||||
**认证**: 需要Bearer Token,需要user:manage权限
|
||||
|
||||
**查询参数**:
|
||||
- `page` (可选): 页码,默认1
|
||||
- `limit` (可选): 每页数量,默认20
|
||||
- `username` (可选): 用户名模糊搜索
|
||||
- `user_type` (可选): 用户类型过滤
|
||||
- `status` (可选): 状态过滤
|
||||
|
||||
**响应**:
|
||||
#### 9.1 获取用户列表
|
||||
- **Endpoint**: GET /api/v1/users
|
||||
- **认证要求**: Bearer Token,需要user:manage权限
|
||||
- **查询参数**:
|
||||
- `page` (可选): 页码,默认1
|
||||
- `limit` (可选): 每页数量,默认20
|
||||
- `username` (可选): 用户名模糊搜索
|
||||
- `user_type` (可选): 用户类型过滤
|
||||
- `status` (可选): 状态过滤
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"data": {
|
||||
"users": [
|
||||
{
|
||||
@@ -339,20 +609,43 @@
|
||||
}
|
||||
```
|
||||
|
||||
#### 8.2 更新用户状态
|
||||
|
||||
**Endpoint**: `PUT /admin/users/{id}/status`
|
||||
|
||||
**认证**: 需要Bearer Token,需要user:manage权限
|
||||
|
||||
**请求体**:
|
||||
#### 9.2 获取用户详情
|
||||
- **Endpoint**: GET /api/v1/users/{id}
|
||||
- **认证要求**: Bearer Token,需要user:manage权限
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"status": "string, required, 状态(active/inactive)"
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"data": {
|
||||
"user": {
|
||||
"id": 1,
|
||||
"username": "testuser",
|
||||
"nickname": "测试用户",
|
||||
"email": "test@example.com",
|
||||
"phone": "13800138000",
|
||||
"user_type": "farmer",
|
||||
"status": "active",
|
||||
"points": 100,
|
||||
"level": 2,
|
||||
"created_at": "2025-01-01T00:00:00.000Z",
|
||||
"last_login_at": "2025-01-01T00:00:00.000Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**响应**:
|
||||
#### 9.3 更新用户状态
|
||||
- **Endpoint**: PUT /api/v1/users/{id}/status
|
||||
- **认证要求**: Bearer Token,需要user:manage权限
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"status": "active"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
@@ -361,25 +654,173 @@
|
||||
}
|
||||
```
|
||||
|
||||
### 9. 内容管理接口
|
||||
|
||||
#### 9.1 获取内容列表
|
||||
|
||||
**Endpoint**: `GET /admin/contents`
|
||||
|
||||
**认证**: 需要Bearer Token,需要content:review权限
|
||||
|
||||
**查询参数**:
|
||||
- `page` (可选): 页码,默认1
|
||||
- `limit` (可选): 每页数量,默认20
|
||||
- `type` (可选): 内容类型
|
||||
- `status` (可选): 审核状态
|
||||
|
||||
**响应**:
|
||||
#### 9.4 删除用户
|
||||
- **Endpoint**: DELETE /api/v1/users/{id}
|
||||
- **认证要求**: Bearer Token,需要user:manage权限
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "用户删除成功"
|
||||
}
|
||||
```
|
||||
|
||||
### 10. 系统管理接口
|
||||
|
||||
#### 10.1 获取系统信息
|
||||
- **Endpoint**: GET /api/v1/admin/system/info
|
||||
- **认证要求**: Bearer Token,需要system:view权限
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"data": {
|
||||
"system": {
|
||||
"version": "1.0.0",
|
||||
"node_version": "v18.17.0",
|
||||
"platform": "linux",
|
||||
"arch": "x64",
|
||||
"uptime": 123456,
|
||||
"memory_usage": {
|
||||
"total": 17179869184,
|
||||
"used": 8589934592,
|
||||
"free": 8589934592
|
||||
},
|
||||
"cpu_usage": 25.5
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 10.2 获取系统服务列表
|
||||
- **Endpoint**: GET /api/v1/admin/system/services
|
||||
- **认证要求**: Bearer Token,需要system:manage权限
|
||||
- **查询参数**:
|
||||
- `page` (可选): 页码,默认1
|
||||
- `limit` (可选): 每页数量,默认20
|
||||
- `type` (可选): 服务类型(database/cache/mq)
|
||||
- `status` (可选): 服务状态(running/stopped)
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"data": {
|
||||
"services": [
|
||||
{
|
||||
"id": "mysql",
|
||||
"name": "MySQL数据库",
|
||||
"type": "database",
|
||||
"status": "running",
|
||||
"host": "localhost",
|
||||
"port": 3306,
|
||||
"description": "主数据库服务",
|
||||
"created_at": "2024-01-01T00:00:00.000Z",
|
||||
"updated_at": "2024-01-15T10:30:00.000Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"total": 5,
|
||||
"page": 1,
|
||||
"limit": 20,
|
||||
"pages": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 10.3 更新服务状态
|
||||
- **Endpoint**: PUT /api/v1/admin/system/services/{id}/status
|
||||
- **认证要求**: Bearer Token,需要system:manage权限
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"status": "stopped"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "服务状态更新成功"
|
||||
}
|
||||
```
|
||||
|
||||
#### 10.4 获取系统配置
|
||||
- **Endpoint**: GET /api/v1/admin/system/configs
|
||||
- **认证要求**: Bearer Token,需要system:config权限
|
||||
- **查询参数**:
|
||||
- `page` (可选): 页码,默认1
|
||||
- `limit` (可选): 每页数量,默认20
|
||||
- `group` (可选): 配置分组
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"data": {
|
||||
"configs": [
|
||||
{
|
||||
"id": "site_name",
|
||||
"name": "网站名称",
|
||||
"value": "结伴客",
|
||||
"type": "string",
|
||||
"group": "basic",
|
||||
"description": "网站显示名称",
|
||||
"created_at": "2024-01-01T00:00:00.000Z",
|
||||
"updated_at": "2024-01-15T10:30:00.000Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"total": 10,
|
||||
"page": 1,
|
||||
"limit": 20,
|
||||
"pages": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 10.5 更新系统配置
|
||||
- **Endpoint**: PUT /api/v1/admin/system/configs/{id}
|
||||
- **认证要求**: Bearer Token,需要system:config权限
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"value": "新网站名称"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "配置更新成功"
|
||||
}
|
||||
```
|
||||
|
||||
### 11. 内容管理接口
|
||||
|
||||
#### 11.1 获取内容列表
|
||||
- **Endpoint**: GET /admin/contents
|
||||
- **认证要求**: Bearer Token,需要content:review权限
|
||||
- **查询参数**:
|
||||
- `page` (可选): 页码,默认1
|
||||
- `limit` (可选): 每页数量,默认20
|
||||
- `type` (可选): 内容类型
|
||||
- `status` (可选): 审核状态
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"data": {
|
||||
"contents": [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user