2026/10/18 7:07:47
网站建设
项目流程
文章目录 引言:REST API分层 一、本篇学习目标与准备 二、核心概念与实现思路 1. 一次请求会经过哪些层 2. Handler 层做什么 解析 JSON `DisallowUnknownFields` 限制请求体大小 3. Service 层做什么 4. Repository 接口是什么 5. 依赖注入是什么 6. 为什么用 HTTP 201 7. `errors.Is` 为什么还能识别包装后的错误 8. `context` 为什么要一直传下去 9. 为什么输入类型不直接使用 `User` 10. 本篇代码中一个容易忽略的细节 三、课程实战:运行、源码与测试 1. 怎么运行 核心源码拆解:`CreateUser` 源码中的测试:`TestCreateUserRejectsDuplicateEmail` 四、实战练习 扩展练习 1:增加尾随 JSON 测试 扩展练习 2:替换存储实现 五、常见问题与排错 问题 1:把校验都放在 Handler,为什么其他入口会绕过规则? 问题 2:未知 JSON 字段被拒绝,是否就完成全部输入校验? 六、与前文的联系和工程应用 七、本篇小结 下期预告 ✍创作者:全栈弄潮儿 🏡 个人主页:全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈开发社区 📙 专栏:Go零基础实战
引言:REST API分层 创建用户接口很容易写成一个大函数:读 JSON、查邮箱、写数据、处理错误都混在一起。本篇在单文件中先建立清晰的职责边界,让 Handler 处理 HTTP,让 Service 执行业务规则,让 Repository 负责数据读写。
一、本篇学习目标与准备 按职责组织创建用户和查询用户流程。 分离请求输入与数据实体。 用接口注入存储并保持邮箱唯一性。 课程目录: