创建或修改 CRUD 模块。当需要创建新的增删改查 API、修改现有路由模块、添加新字段、新增接口、或用户请求"创建/修改 XX 管理"时使用
src/routes/{tier}/{category}/{feature}/
├── {feature}.index.ts # 必需:路由入口
├── {feature}.routes.ts # 必需:OpenAPI 路由定义
├── {feature}.handlers.ts # 必需:处理器实现
├── {feature}.types.ts # 必需:类型定义
├── {feature}.schema.ts # 可选:Zod 验证
├── {feature}.services.ts # 可选:复杂业务逻辑或模块内复用
└── __tests__/ # 可选:单元测试
| Tier | 路径前缀 | 认证 | 说明 |
|---|---|---|---|
| public | /api/public/* | 无 | 公开接口 |
| client | /api/client/* | JWT | 客户端用户 |
| admin | /api/admin/* | JWT + RBAC + 审计 | 后台管理 |
参考 db-schema.md
// src/db/schema/{tier}/{category}/{feature}.ts
export const {feature}s = pgTable("{tier}_{feature}s", {
...baseColumns,
// 字段定义...
});
// {feature}.index.ts
import { createRouter } from "@/lib/core/create-app";
import * as handlers from "./{feature}.handlers";
import * as routes from "./{feature}.routes";
export default createRouter()
.openapi(routes.list, handlers.list)
.openapi(routes.create, handlers.create)
.openapi(routes.get, handlers.get)
.openapi(routes.update, handlers.update)
.openapi(routes.remove, handlers.remove);
return c.json(Resp.ok(data), HttpStatusCodes.OK);
return c.json(Resp.fail("错误信息"), HttpStatusCodes.BAD_REQUEST);
logger.info({ userId }, "[模块名]: 操作描述");
// 数据对象放第一个参数
createdBy: subupdatedBy: subsub 从 c.get("jwtPayload") 获取user-roles.ts)SystemUserRouteHandlerType)Status.ENABLED)参考 examples/dicts.md 查看完整的 dicts 模块实现。