添加前后端Dockerfile和docker-compose配置 创建部署脚本deploy.sh 完善项目文档结构包括前后端文档、API文档和部署文档 更新README提供项目概述和快速开始指南 文档包括详细的技术栈说明、功能模块介绍和部署指南 部署方案支持一键式容器化部署和宝塔面板集成
5.7 KiB
5.7 KiB
API接口文档
接口概述
本文档定义了微信小程序前端调用的API接口,包括认证、用户、数据等相关接口。
基础信息
- API基础路径:
http://localhost:3000/api - 响应格式: JSON
- 认证方式: JWT
认证接口
1. 用户登录
接口地址: /auth/login
请求方式: POST
请求参数:
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| username | string | 是 | 用户名 |
| password | string | 是 | 密码 |
响应示例:
{
"code": 200,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "123",
"username": "admin",
"nickname": "管理员"
}
}
}
2. 用户注册
接口地址: /auth/register
请求方式: POST
请求参数:
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| username | string | 是 | 用户名 |
| password | string | 是 | 密码 |
| nickname | string | 是 | 昵称 |
响应示例:
{
"code": 200,
"message": "注册成功",
"data": {
"id": "123",
"username": "user1",
"nickname": "新用户"
}
}
用户接口
1. 获取用户信息
接口地址: /user/info
请求方式: GET
请求头:
- Authorization: Bearer {token}
响应示例:
{
"code": 200,
"message": "获取成功",
"data": {
"id": "123",
"username": "admin",
"nickname": "管理员",
"avatar": "https://example.com/avatar.jpg",
"createdAt": "2026-03-18T00:00:00Z"
}
}
2. 更新用户信息
接口地址: /user/update
请求方式: PUT
请求头:
- Authorization: Bearer {token} 请求参数:
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| nickname | string | 否 | 昵称 |
| avatar | string | 否 | 头像URL |
响应示例:
{
"code": 200,
"message": "更新成功",
"data": {
"id": "123",
"username": "admin",
"nickname": "新昵称",
"avatar": "https://example.com/new-avatar.jpg"
}
}
数据接口
1. 获取数据列表
接口地址: /data/list
请求方式: GET
请求参数:
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| page | number | 否 | 页码,默认1 |
| size | number | 否 | 每页条数,默认10 |
| keyword | string | 否 | 搜索关键词 |
响应示例:
{
"code": 200,
"message": "获取成功",
"data": {
"list": [
{
"id": "1",
"title": "数据1",
"content": "内容1",
"createdAt": "2026-03-18T00:00:00Z"
}
],
"total": 1,
"page": 1,
"size": 10
}
}
2. 获取数据详情
接口地址: /data/detail/{id}
请求方式: GET
路径参数:
- id: 数据ID
响应示例:
{
"code": 200,
"message": "获取成功",
"data": {
"id": "1",
"title": "数据1",
"content": "内容1",
"createdAt": "2026-03-18T00:00:00Z",
"updatedAt": "2026-03-18T00:00:00Z"
}
}
AI接口
1. 智能问答
接口地址: /ai/chat
请求方式: POST
请求参数:
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| question | string | 是 | 问题 |
| context | string | 否 | 上下文 |
响应示例:
{
"code": 200,
"message": "获取成功",
"data": {
"answer": "这是AI的回答",
"thinking": "AI的思考过程",
"tokens": 100
}
}
视频接口
1. 上传视频
接口地址: /video/upload
请求方式: POST
请求头:
- Content-Type: multipart/form-data 请求参数:
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| video | file | 是 | 视频文件 |
| title | string | 是 | 视频标题 |
响应示例:
{
"code": 200,
"message": "上传成功",
"data": {
"id": "1",
"title": "视频标题",
"url": "https://example.com/video.mp4",
"duration": 60
}
}
2. 获取视频列表
接口地址: /video/list
请求方式: GET
请求参数:
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| page | number | 否 | 页码,默认1 |
| size | number | 否 | 每页条数,默认10 |
响应示例:
{
"code": 200,
"message": "获取成功",
"data": {
"list": [
{
"id": "1",
"title": "视频1",
"url": "https://example.com/video1.mp4",
"duration": 60,
"createdAt": "2026-03-18T00:00:00Z"
}
],
"total": 1,
"page": 1,
"size": 10
}
}
错误码说明
| 错误码 | 描述 |
|---|---|
| 400 | 请求参数错误 |
| 401 | 未授权,请登录 |
| 403 | 禁止访问 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
调用示例
使用axios调用
// 登录
axios.post('/api/auth/login', {
username: 'admin',
password: '123456'
}).then(response => {
const token = response.data.data.token;
// 存储token
localStorage.setItem('token', token);
});
// 带认证的请求
axios.get('/api/user/info', {
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
});
使用fetch调用
// 登录
fetch('/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: 'admin',
password: '123456'
})
}).then(response => response.json())
.then(data => {
const token = data.data.token;
// 存储token
localStorage.setItem('token', token);
});
// 带认证的请求
fetch('/api/user/info', {
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}).then(response => response.json())
.then(data => console.log(data));