mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-20 17:57:54 +00:00
作为编码约定的可执行参照物:文档会滞后,而这个模块过时会导致构建或测试 失败,因此以它为准。 目录骨架与自动注册文件由项目自带的脚手架生成: go run main.go app -n demo 它同时产出 cmd/api/demo.go,其中的 init() 将路由追加进 AppRouters, 无需在任何中心文件手工登记。 模块本身演示了单表 CRUD 的推荐写法——直接使用 common/actions 提供的五个 通用 Action,因此只有 model、dto、router 三个业务文件,没有 apis 与 service。手写 Handler 的场景仅在业务超出单表 CRUD 时才需要。 DTO 中详情/删除入参内嵌 dto.ObjectById 以复用其 Bind 与 GetId,不重复 实现 uri 绑定与批量 ids 合并逻辑。 补充 8 项测试锁定通用 Action 的接口约束,其中最关键的是 Generate() 必须 返回副本——Action 在并发请求间复用实例,就地返回会串数据。反向验证:将 Generate 改为就地返回,测试立即失败。
8 lines
202 B
Go
8 lines
202 B
Go
package api
|
|
|
|
import "go-admin/app/demo/router"
|
|
|
|
func init() {
|
|
//注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法
|
|
AppRouters = append(AppRouters, router.InitRouter)
|
|
} |