Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 25s
feat(admin): 新增工会管理功能 feat(activity): 添加活动管理相关服务 feat(user): 实现用户道具卡和积分管理 feat(guild): 新增工会成员管理功能 fix: 修复数据库连接配置 fix: 修正jwtoken导入路径 fix: 解决端口冲突问题 style: 统一代码格式和注释风格 style: 更新项目常量命名 docs: 添加项目框架和开发规范文档 docs: 更新接口文档注释 chore: 移除无用代码和文件 chore: 更新Makefile和配置文件 chore: 清理日志文件 test: 添加道具卡测试脚本
3.8 KiB
3.8 KiB
DESIGN: 开发规范文档设计
本文档定义了最终 docs/开发规范.md 的结构和核心内容,旨在为后续的文档撰写提供清晰的蓝图。
1. 整体结构
最终的开发规范文档将分为以下几个核心章节,每个章节都将包含详细的规则描述和代码示例。
graph TD
A[开发规范] --\u003e B[1. 概述];
A --\u003e C[2. 目录与文件结构];
A --\u003e D[3. 命名规范];
A --\u003e E[4. API Handler 规范];
A --\u003e F[5. 数据传输对象 (DTO) 规范];
A --\u003e G[6. 错误处理规范];
A --\u003e H[7. 日志记录规范];
A --\u003e I[8. 注释与文档(Swagger)];
subgraph E [4. API Handler 规范]
E1[4.1 Handler 定义]
E2[4.2 路由与函数签名]
E3[4.3 参数绑定与校验]
E4[4.4 业务逻辑调用]
E5[4.5 响应处理]
end
subgraph F [5. 数据传输对象 (DTO) 规范]
F1[5.1 Request/Response 结构体]
F2[5.2 JSON Tags]
F3[5.3 Validation Tags]
end
2. 核心章节设计
2.1 概述
- 目的:阐明制定此规范的背景和目标。
- 范围:明确规范的适用范围(API 层)。
- 原则:强调代码清晰、一致、可维护的核心原则。
2.2 目录与文件结构
- 规则:
- API 功能模块应在
internal/api/{模块名}下创建独立目录。 - 每个目录包含
*.go文件,每个文件实现一个独立的 API 端点。 {模块名}.go文件用于定义handler结构体和New初始化函数。
- API 功能模块应在
- 示例:以
admin模块为例,展示其目录结构。
2.3 命名规范
- 规则:
- Handler 文件名:使用小写蛇形命名法,如
login.go,admin_create.go。 - 请求/响应结构体:使用驼峰式命名,并以
Request/Response结尾,如loginRequest,loginResponse。 - Handler 函数:使用驼峰式命名,如
Login(),CreateAdmin()。
- Handler 文件名:使用小写蛇形命名法,如
2.4 API Handler 规范
- Handler 定义:
handler结构体应包含logger和数据库连接(readDB,writeDB)。 - 路由与函数签名:Handler 函数必须返回
core.HandlerFunc类型。 - 参数绑定与校验:必须使用
ctx.ShouldBindJSON()进行参数绑定,并结合validation包进行错误信息格式化。 - 业务逻辑调用:通过
h.readDB或h.writeDB与数据库交互,或调用service层方法。 - 响应处理:成功时使用
ctx.Payload(res)返回数据。
2.5 数据传输对象 (DTO) 规范
- Request/Response 结构体:每个 API 都应定义独立的请求和响应结构体。
- JSON Tags:所有结构体字段必须包含
json:"..."tag。 - Validation Tags:对需要校验的请求字段,必须添加
binding:"..."tag。
2.6 错误处理规范
- 规则:必须使用
ctx.AbortWithError(core.Error(...))来中断请求并返回标准格式的错误。 core.Error参数:需提供 HTTP 状态码、业务错误码 (code.Code) 和详细错误信息。
2.7 日志记录规范
- 规则:通过注入的
h.logger实例进行日志记录(虽然在admin示例中不明显,但这是标准实践)。
2.8 注释与文档 (Swagger)
- 规则:
- 每个 Handler 函数上方必须有完整的 Swagger 注解,包括
@Summary,@Description,@Tags,@Param,@Success,@Failure,@Router等。 - 所有 DTO 字段和函数都应有清晰的中文注释。
- 每个 Handler 函数上方必须有完整的 Swagger 注解,包括
3. 数据流与接口契约
本文档本身不定义新的数据流或接口,而是规范如何定义它们。其核心思想是:通过严格的结构体和规范化的错误处理,确保所有 API 的接口契约都是明确和一致的。