1.9 KiB
1.9 KiB
server/ ├── models/ # 仅负责数据模型相关 │ ├── 结构体(struct)定义 │ ├── 字段标签与表名(TableName) │ └── 数据库初始化(注册模型、连接数据库) │ ├── services/ # 核心业务逻辑层 │ ├── 所有业务处理方法(含CRUD) │ ├── 模型数据校验 │ ├── 密码等安全相关加解密 │ └── 与 models 层的数据库操作 │ └── controllers/ # 控制器层,专注 HTTP ├── 请求参数解析 ├── 参数有效性验证 ├── 调用 services 处理业务 └── 响应数据统一格式化与错误处理
分层架构开发规范
Models 层
- 只负责定义数据库结构和初始化,包含结构体、字段标签与表名映射,数据库注册与连接。
- 不允许包含任何业务逻辑、数据校验、密码处理或和 HTTP 相关的代码。
Services 层
- 实现所有业务流程、数据访问、校验和跨模型业务逻辑。
- 通过 models 操作数据库,仅返回 struct 或错误。
- 实现数据校验、密码加密等业务需求;不直接处理 HTTP 请求或响应。
Controllers 层
- 只负责接收和解析 HTTP 请求,进行参数校验。
- 调用 services 执行业务逻辑。
- 负责返回统一格式的响应结果,对业务错误进行捕获和转义为 HTTP 状态码和消息。
其它要求
- 各层代码职责单一,禁止跨层调用(如 controllers 直接操作 models)。
- 统一异常处理,业务错误只在 services 返回,controllers 负责转换为 HTTP 响应。
- 保持 controller 轻量简洁,绝不包含业务处理逻辑。
- services 层所有数据变更、校验等均可单元测试。
- models 变动需清晰文档和数据库迁移脚本。
建议先设计 models 层,随后 services 层,最后实现 controllers,实现过程中注意分层原则。