feat: 标准化响应体

This commit is contained in:
2026-01-11 16:39:59 +08:00
parent cd50716dc6
commit 45047f40aa
26 changed files with 313 additions and 250 deletions

View File

@@ -32,16 +32,48 @@ web 项目代码组织如下:
- 注释符合 jsdoc 规范
- 代码简洁避免冗余移除无用的代码引用、变量、函数和css样式
- 禁止使用 any 类型
## 4. 响应格式
## 4. 前端发送net请求示例
- 后端统一返回 `APIResponse<T>` 结构:
- 分页
```json
{ "code": 0, "data": {}, "message": "success", "timestamp": 12345678 }
```
```typescript
import {net} from '@utils';
import type {APIPagination} from '@utils/net';
- 由 `RouteScanner` 中的 `wrapControllerMethod` 自动封装。
const data = await net.request<APIPagination<Deployment>>({
method: 'GET',
url: '/api/deployments',
// 注意:查询参数使用 params 传递,不要手动拼接到 url 上
params: {
projectId: 1,
page: 1,
pageSize: 10,
},
})
```
- 其他
```typescript
import {net} from '@utils';
const data = await net.request<void>({
method: 'POST',
url: '/api/deployment',
data: {
name: 'xxx',
description: 'xxx',
repository: 'https://a.com',
}
})
if (data.code === 0) {
console.log("创建成功")
} else {
console.log("创建失败")
}
```
## 5. 异步处理

View File

@@ -0,0 +1,33 @@
# 标准化响应结构
1. 需要标准化接口响应的结构,修改后端接口中不符合规范的代码。
2. 前端接口类型定义需要与后端接口响应结构保持一致。
## 响应示例
- 列表分页响应
```json
{
"code": 0, // 响应状态码0 表示成功,其他值表示失败
"message": "success", // 响应消息
"data": { // 响应数据
"list": [], // 列表数据
"page": 1, // 当前页码
"pageSize": 10, // 每页显示数量
"total": 10 // 总数量
},
"timestamp": "12346579" // 响应时间戳
}
```
- 其他响应
```json
{
"code": 0,
"message": "success",
"data": {},
"timestamp": "12346579"
}
```

View File

@@ -7,15 +7,17 @@
- 项目管理 (CRUD)
- 基础流水线执行流程 (Git Clone -> zx Run -> Log Update)
- 前端项目列表与详情页预览
- 优化: 移除菜单环境管理及页面(目前无用)
- 优化:移除创建 Step 弹窗可用环境变量区域
- 优化: 部署记录的分页查询每页 10 条
## 进行中 🚧
- 优化: 移除菜单环境管理及页面(目前无用)
- 优化: 部署记录的分页查询
- 修复: 表单必填项,*号和 label 不在一行
- 修复:项目详情页,未选中 tab【部署记录】还会拉取日志信息
- [标准化接口响应结构](./requirements/0001-Fix-Response-structure.md)
## 待办 📅
- [ ] Gitea Webhook 自动触发
- [ ] 用户权限管理 (RBAC)
- [ ] 修复: 表单必填项,*号和 label 不在一行
- [ ] 修复:项目详情页,未选中 tab【部署记录】还会拉取日志信息