aiDoc/modules/backend-layer-rules.md
Router -> API -> Service -> Model 依赖方向enter.go 作为组装与暴露入口,避免循环引用global.GVA_MODELjson 与 gorm 标签ID、CreatedAt、UpdatedAt 这些基础字段沿用项目现有约定model/request/XxxSearch,并内嵌通用的 request.PageInfonilgin.Contexterrorservice/ 下建立独立文件,并在 service/enter.go 注册multipart/form-dataShouldBindJSONShouldBindQuery、c.Query(...)、c.DefaultQuery(...)c.Param(...)c.FormFile(...)、c.DefaultPostForm(...)、c.Request.FormValue(...)c.GetHeader(...)、c.Request.Header.Get(...)c.Cookie(...)绑定方式要与真实参数来源一致
不要为了套模板,把 Header / Cookie / Query / form-data 中的数据强行改成 body
认证、追踪、网关透传等信息,很多时候本来就应该从 Header 或 Cookie 获取
上传文件时,应按上传协议从 multipart/form-data 中取文件和附带字段
必须通过 service.ServiceGroupApp 访问服务层
必须使用项目统一的 response 包输出结果
每个对外 API 都必须写完整且准确的 Swagger 注释
api.ApiGroupApp 引用 API 层router/ 下建立独立文件,并在 router/enter.go 注册插件或模块若需要初始化入口,至少关注以下职责:
gorm.go: 表结构迁移router.go: 路由注册menu.go: 菜单与权限初始化viper.go: 配置加载api.go: API 注册对外 API 的 Swagger 注释至少要准确说明: