|
|
@@ -16,8 +16,40 @@
|
|
|
|
|
|
## 标准通用CRUD开发流程
|
|
|
|
|
|
+适用于简单数据模型,无复杂业务逻辑,仅需基础CRUD操作的场景。采用`GenericCrudService`和`createCrudRoutes`快速生成接口。
|
|
|
+
|
|
|
+### 开发步骤概要
|
|
|
+
|
|
|
+1. **创建实体**:在`src/server/modules/[模块名]/[实体名].entity.ts`定义实体类和Zod Schema
|
|
|
+2. **注册实体**:在`src/server/data-source.ts`中注册新实体
|
|
|
+3. **创建Service**:继承`GenericCrudService`实现基础CRUD操作
|
|
|
+4. **创建API路由**:使用`createCrudRoutes`快速生成CRUD路由
|
|
|
+5. **注册路由**:在`src/server/api.ts`中注册路由
|
|
|
+6. **创建客户端API**:在`src/client/api.ts`中定义客户端调用方法
|
|
|
+7. **前端调用**:在页面组件中使用类型化API调用
|
|
|
+8. **注册路由和菜单**:
|
|
|
+ - 管理后台:在`src/client/admin/routes.tsx`中添加路由配置,在`src/client/admin/menu.tsx`中添加菜单配置
|
|
|
+ - 前台:在`src/client/home/routes.tsx`中添加路由配置
|
|
|
+
|
|
|
+详细流程请参见[标准通用CRUD开发流程规范](./11-standard-crud.md)
|
|
|
## 自定义复杂CRUD开发流程
|
|
|
|
|
|
+适用于包含复杂业务逻辑的实体,需要手动实现服务方法和路由处理的场景,如复杂业务规则、多表关联操作、特殊权限控制等。
|
|
|
+
|
|
|
+### 开发步骤概要
|
|
|
+
|
|
|
+1. **创建实体**:在`src/server/modules/[模块名]/[实体名].entity.ts`定义实体类和Zod Schema
|
|
|
+2. **注册实体**:在`src/server/data-source.ts`中注册新实体
|
|
|
+3. **创建自定义Service**:实现包含复杂业务逻辑的数据访问方法
|
|
|
+4. **创建自定义API路由**:手动实现CRUD路由及处理逻辑
|
|
|
+5. **注册路由**:在`src/server/api.ts`中注册路由
|
|
|
+6. **创建客户端API**:在`src/client/api.ts`中定义客户端调用方法
|
|
|
+7. **前端调用**:在页面组件中使用类型化API调用
|
|
|
+8. **注册路由和菜单**:
|
|
|
+ - 管理后台:在`src/client/admin/routes.tsx`中添加路由配置,在`src/client/admin/menu.tsx`中添加菜单配置
|
|
|
+ - 前台:在`src/client/home/routes.tsx`中添加路由配置
|
|
|
+
|
|
|
+详细流程请参见[自定义复杂CRUD开发流程规范](./11-custom-crud.md)
|
|
|
## 注意事项
|
|
|
|
|
|
1. 实体Schema必须在实体文件中定义,路由中直接引用,不要重复定义
|