Skip to content

3.1 概述与目标 ​

概述

本章以「案例演示模块(example)」为主线,完整走一遍模块开发全流程:建表 → DAO → 请求与校验 → 逻辑层 → 控制器 → 服务注册与路由 → 权限节点 → 前端联调。章内所有代码均摘自项目真实实现,可直接对照源码阅读。

本章目标 ​

完成本章后,你将能够:

text
1. 设计符合项目规范的业务表(统一审计列 / del_flag / uk_* 唯一索引 / 注释枚举)
2. 产出并理解 dao/entity/do 四件(gf gen dao 或生成器)
3. 编写 api/v1 请求响应结构体与 gmeta 注解(权限/日志/OpenAPI 一体)
4. 用 ModuleSpec 声明式基座实现逻辑层(筛选/字典/文件字段/钩子)
5. 完成薄层控制器 + 手维护 service 接口 + 路由注册
6. 配置权限节点并完成前端 querySchemas/columns/api 三件套联调

模块开发的两条路径 ​

路径适用场景说明
代码生成器标准 CRUD 模块一条命令产出全部文件 + 菜单/权限/字典/路由副作用(见第 10 章)
手动编写复杂业务模块按本章步骤逐件编写,完全掌控每行代码

两条路径产出的结构完全一致——生成器模板就是按本章规范制作的。建议先读懂本章,再用生成器提效。

模块文件全景(以 example 为例) ​

一个模块在后端落地需要以下文件(★ 为手工编写,○ 为工具产出):

text
○ internal/dao/example.go              数据访问(自定义模板:挂钩子 + Ctx 覆写)
○ internal/dao/internal/example.go     dao 内部实现(勿手改)
○ internal/model/entity/example.go     实体
○ internal/model/do/example.go         数据对象 DO
★ api/v1/example.go                    全部 Req/Res 结构体 + gmeta 注解
★ internal/controller/example.go       薄层控制器(转发 service)
★ internal/service/example.go          手维护接口 + Register + 取用函数
★ internal/logic/example.go            业务实现(ModuleSpec 声明 + 方法委托)
★ internal/router/router.go            追加一行 Bind 注册(生成器自动写入)
★ ui/src/api/tool/example.ts           前端接口模块
★ ui/src/views/tool/example/           前端页面五件套
    index.vue / edit.vue / detail.vue / columns.ts / querySchemas.ts

标准接口清单(七件套 + 扩展) ​

方法HTTP路由模板说明
PageGET/api/example/page分页(pageNo/pageSize + 筛选)
ListGET/api/example/list全量/树形(下拉、树选择)
DetailGET/api/example/detail/:id详情
AddPOST/api/example/add新增,返回 {id}
UpdatePUT/api/example/update修改(body 含 id)
DeleteDELETE/api/example/delete/:id软删(del_flag=1)
BatchDeleteDELETE/api/example/batchDelete批量删除 body {ids:[]}
ImportPOST/api/example/importmultipart 文件导入(xls/xlsx)
ExportGET/api/example/export导出文件
StatusPUT/api/example/status状态切换(有 status 列的模块)

命名约定:结构体 {Mod}{Action}Req / {Mod}{Action}Res;controller 方法名 = logic 方法名 = 上表方法名。日志标题为「{模块中文名}-{动作}」(如"案例演示-查询分页记录"),动作映射:page=查询分页记录、list=查询列表、detail=查询详情、add=新增记录、update=修改记录、delete=删除记录、batchDelete=批量删除记录、import=导入数据、export=导出数据、status=设置状态。

后续章节地图 ​

text
3.2 数据库建表      → 表规范与 example 建表语句
3.3 DAO 数据层      → 四件产出与 dao.Ctx 架构红线
3.4 请求与校验      → api/v1 结构体 + gmeta + gvalid(真实代码)
3.5 逻辑层开发      → ModuleSpec 声明与方法委托(真实代码)
3.6 控制器开发      → 薄层透传(真实代码)
3.7 服务注册与路由   → service 接口三件套 + Bind 注册(真实代码)
3.8 权限节点配置    → 权限码规范与角色勾选
3.9 前端联调指引    → api/columns/querySchemas 三件套
3.10 完整代码清单   → example 模块四件套全文(摘自项目)
3.11 常见问题与排错

小蚂蚁云团队 · 提供技术支持