feat(P01): 迁移 Taro 小程序项目代码
- 迁移前端源码 (src/) - 迁移后端服务 (server/) - 迁移配置文件 (package.json, tsconfig.json 等) - 更新需求概要文档 - 更新架构设计文档 - 更新接口定义文档 - 更新环境配置文档 - 创建测试目录结构和配置 项目技术栈: - Taro 4.1.9 (跨端框架) - React 18 - TypeScript - NestJS (后端) - Tailwind CSS 4 - shadcn/ui 组件库
This commit is contained in:
@@ -1,54 +1,41 @@
|
||||
# P01_errlens_app - 接口定义
|
||||
|
||||
## API 基础路径
|
||||
`/api/v1`
|
||||
## 接口规范
|
||||
|
||||
## 认证方式
|
||||
JWT Token,放在 Authorization 头:
|
||||
```
|
||||
Authorization: Bearer <token>
|
||||
```
|
||||
### 基础信息
|
||||
- **Base URL**: `/api`(开发环境通过 Vite Proxy 代理到 `http://localhost:3000/api`)
|
||||
- **请求格式**: JSON
|
||||
- **响应格式**: Envelope Pattern `{ code, msg, data }`
|
||||
|
||||
## 接口列表
|
||||
### 通用响应结构
|
||||
|
||||
### 1. 代码分析
|
||||
|
||||
#### POST /api/v1/analyze
|
||||
分析代码中的错误
|
||||
|
||||
**请求体:**
|
||||
```json
|
||||
```typescript
|
||||
// 成功响应
|
||||
{
|
||||
"code": "string",
|
||||
"language": "string",
|
||||
"options": {
|
||||
"strict": true
|
||||
}
|
||||
code: 200,
|
||||
msg: "success",
|
||||
data: { ... }
|
||||
}
|
||||
|
||||
// 错误响应
|
||||
{
|
||||
code: 400 | 401 | 403 | 404 | 500,
|
||||
msg: "错误信息",
|
||||
data: null
|
||||
}
|
||||
```
|
||||
|
||||
**响应:**
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"errors": [
|
||||
{
|
||||
"line": 10,
|
||||
"column": 5,
|
||||
"type": "error",
|
||||
"message": "变量未定义",
|
||||
"suggestion": "建议在使用前定义变量"
|
||||
}
|
||||
]
|
||||
}
|
||||
---
|
||||
|
||||
## 用户模块
|
||||
|
||||
### 1. 用户登录
|
||||
|
||||
```
|
||||
POST /api/auth/login
|
||||
```
|
||||
|
||||
### 2. 用户管理
|
||||
|
||||
#### POST /api/v1/users/login
|
||||
用户登录
|
||||
|
||||
**请求体:**
|
||||
**请求参数**:
|
||||
```json
|
||||
{
|
||||
"email": "string",
|
||||
@@ -56,40 +43,252 @@ Authorization: Bearer <token>
|
||||
}
|
||||
```
|
||||
|
||||
**响应:**
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"token": "string",
|
||||
"user": {
|
||||
"id": "string",
|
||||
"email": "string",
|
||||
"name": "string"
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"token": "jwt_token_here",
|
||||
"user": {
|
||||
"id": "uuid",
|
||||
"email": "user@example.com",
|
||||
"nickname": "用户名"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 修复建议
|
||||
---
|
||||
|
||||
#### POST /api/v1/fix
|
||||
获取修复建议
|
||||
### 2. 用户注册
|
||||
|
||||
**请求体:**
|
||||
```
|
||||
POST /api/auth/register
|
||||
```
|
||||
|
||||
**请求参数**:
|
||||
```json
|
||||
{
|
||||
"email": "string",
|
||||
"password": "string",
|
||||
"nickname": "string"
|
||||
}
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"id": "uuid",
|
||||
"email": "user@example.com",
|
||||
"nickname": "用户名"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. 获取用户信息
|
||||
|
||||
```
|
||||
GET /api/users/profile
|
||||
```
|
||||
|
||||
**请求头**:
|
||||
```
|
||||
Authorization: Bearer <token>
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"id": "uuid",
|
||||
"email": "user@example.com",
|
||||
"nickname": "用户名",
|
||||
"avatar": "https://...",
|
||||
"createdAt": "2026-05-22T00:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 代码分析模块
|
||||
|
||||
### 1. 上传代码分析
|
||||
|
||||
```
|
||||
POST /api/analyze
|
||||
```
|
||||
|
||||
**请求头**:
|
||||
```
|
||||
Authorization: Bearer <token>
|
||||
```
|
||||
|
||||
**请求参数**:
|
||||
```json
|
||||
{
|
||||
"code": "string",
|
||||
"error": {
|
||||
"type": "string",
|
||||
"message": "string"
|
||||
"language": "javascript | python | typescript | ..."
|
||||
}
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"taskId": "uuid",
|
||||
"status": "completed",
|
||||
"results": [
|
||||
{
|
||||
"line": 10,
|
||||
"column": 5,
|
||||
"severity": "error",
|
||||
"message": "缺少分号",
|
||||
"suggestion": "在行末添加分号"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**响应:**
|
||||
---
|
||||
|
||||
### 2. 获取分析结果
|
||||
|
||||
```
|
||||
GET /api/analyze/:taskId
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"fixedCode": "string",
|
||||
"explanation": "string"
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"taskId": "uuid",
|
||||
"status": "completed",
|
||||
"results": [...]
|
||||
}
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. 获取历史记录
|
||||
|
||||
```
|
||||
GET /api/analyze/history
|
||||
```
|
||||
|
||||
**查询参数**:
|
||||
```
|
||||
page: number (default: 1)
|
||||
pageSize: number (default: 20)
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": "uuid",
|
||||
"codeSnippet": "function hello() {...}",
|
||||
"language": "javascript",
|
||||
"resultCount": 3,
|
||||
"createdAt": "2026-05-22T00:00:00Z"
|
||||
}
|
||||
],
|
||||
"total": 100,
|
||||
"page": 1,
|
||||
"pageSize": 20
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 文件上传模块
|
||||
|
||||
### 1. 上传文件
|
||||
|
||||
```
|
||||
POST /api/upload
|
||||
```
|
||||
|
||||
**请求头**:
|
||||
```
|
||||
Authorization: Bearer <token>
|
||||
Content-Type: multipart/form-data
|
||||
```
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
file: binary
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"url": "https://storage.example.com/files/xxx.png",
|
||||
"filename": "xxx.png",
|
||||
"size": 1024
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 错误码定义
|
||||
|
||||
| 错误码 | 说明 |
|
||||
|-------|------|
|
||||
| 200 | 成功 |
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未授权 / Token 过期 |
|
||||
| 403 | 权限不足 |
|
||||
| 404 | 资源不存在 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
---
|
||||
|
||||
## API 测试命令
|
||||
|
||||
### 开发环境测试
|
||||
|
||||
```bash
|
||||
# 登录接口
|
||||
curl -X POST http://localhost:3000/api/auth/login \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"email":"test@example.com","password":"123456"}'
|
||||
|
||||
# 获取用户信息
|
||||
curl -X GET http://localhost:3000/api/users/profile \
|
||||
-H "Authorization: Bearer <token>"
|
||||
|
||||
# 代码分析
|
||||
curl -X POST http://localhost:3000/api/analyze \
|
||||
-H "Authorization: Bearer <token>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"code":"console.log(1)","language":"javascript"}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**文档版本**:v1.0.0
|
||||
**最后更新**:2026-05-22
|
||||
|
||||
Reference in New Issue
Block a user