Files
Web_BAI_Manage_ApiServer/docs/api.md
XuJiacheng 6d713c22ed feat: 添加Docker部署配置和项目文档
添加前后端Dockerfile和docker-compose配置
创建部署脚本deploy.sh
完善项目文档结构包括前后端文档、API文档和部署文档
更新README提供项目概述和快速开始指南

文档包括详细的技术栈说明、功能模块介绍和部署指南
部署方案支持一键式容器化部署和宝塔面板集成
2026-03-18 14:29:41 +08:00

5.7 KiB
Raw Blame History

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));