Skip to content

Project 01 — Go REST API

项目目标

使用 Go 构建可供 Vue 前端调用的 REST API,通过连续两个阶段把内存版服务演进为 PostgreSQL 持久化服务。

启动阶段:Phase 03 — Go Web
完成阶段:Phase 04 — Database
当前状态:未开始

在完成 Phase 03 的 net/http、Handler 和 REST API 基础前,不提前编写项目业务代码。

Phase 03 里程碑 — 可运行的内存 API

  • 使用 net/http 实现服务,不先依赖 Web 框架
  • 提供用户与项目的基础 CRUD 接口
  • 使用 JSON 作为请求和响应格式
  • 实现路由、参数校验、统一错误响应和基础 Middleware
  • 使用 httptest 覆盖主要 Handler 的成功与失败路径
  • 编写 API 使用说明和示例请求

验收标准

  • go test ./... 全部通过
  • 服务可以独立启动并正常关闭
  • CRUD 接口状态码和 JSON 结构一致
  • 非法参数、资源不存在等错误具有明确响应
  • Vue 或命令行客户端能够完成一次完整 CRUD 流程

Phase 04 里程碑 — PostgreSQL 持久化

  • 使用 PostgreSQL 设计用户、项目及关联关系
  • 使用 database/sql 实现 Repository
  • 正确配置连接池、Context 和事务
  • 为关键字段建立约束和索引
  • 增加基础认证;认证方案在进入该里程碑时确定
  • 提供数据库初始化与本地运行说明

验收标准

  • 重启服务后数据仍然存在
  • Repository 与 HTTP 层职责分离
  • 事务失败时能够正确回滚
  • 数据库错误不会泄露内部实现信息
  • 集成测试覆盖至少一条完整的数据读写路径

暂不包含

  • 微服务拆分
  • Kubernetes
  • 消息队列
  • 复杂权限系统