# API接口文档 ## 接口概述 本文档定义了微信小程序前端调用的API接口,包括认证、用户、数据等相关接口。 ## 基础信息 - API基础路径: `http://localhost:3000/api` - 响应格式: JSON - 认证方式: JWT ## 认证接口 ### 1. 用户登录 **接口地址**: `/auth/login` **请求方式**: POST **请求参数**: | 参数名 | 类型 | 必选 | 描述 | |-------|------|------|------| | username | string | 是 | 用户名 | | password | string | 是 | 密码 | **响应示例**: ```json { "code": 200, "message": "登录成功", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": "123", "username": "admin", "nickname": "管理员" } } } ``` ### 2. 用户注册 **接口地址**: `/auth/register` **请求方式**: POST **请求参数**: | 参数名 | 类型 | 必选 | 描述 | |-------|------|------|------| | username | string | 是 | 用户名 | | password | string | 是 | 密码 | | nickname | string | 是 | 昵称 | **响应示例**: ```json { "code": 200, "message": "注册成功", "data": { "id": "123", "username": "user1", "nickname": "新用户" } } ``` ## 用户接口 ### 1. 获取用户信息 **接口地址**: `/user/info` **请求方式**: GET **请求头**: - Authorization: Bearer {token} **响应示例**: ```json { "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 | **响应示例**: ```json { "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 | 否 | 搜索关键词 | **响应示例**: ```json { "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 **响应示例**: ```json { "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 | 否 | 上下文 | **响应示例**: ```json { "code": 200, "message": "获取成功", "data": { "answer": "这是AI的回答", "thinking": "AI的思考过程", "tokens": 100 } } ``` ## 视频接口 ### 1. 上传视频 **接口地址**: `/video/upload` **请求方式**: POST **请求头**: - Content-Type: multipart/form-data **请求参数**: | 参数名 | 类型 | 必选 | 描述 | |-------|------|------|------| | video | file | 是 | 视频文件 | | title | string | 是 | 视频标题 | **响应示例**: ```json { "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 | **响应示例**: ```json { "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调用 ```javascript // 登录 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调用 ```javascript // 登录 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)); ```