feat(lyra): 启动 HTTP 服务并添加示例接口
- 注册 GET /hello,使用统一响应结构并添加路由回归测试 - 使用 lyra.toml 配置 Gin 模式与监听地址,处理启动错误 - 明确 handler/service 业务分包约定并同步文档
This commit is contained in:
+19
-16
@@ -5,37 +5,40 @@
|
||||
|
||||
## 当前状态
|
||||
|
||||
已搭建目录骨架与程序入口 `main.go`,各内部目录的职责与依赖约束记录在 `AGENTS.md` 中。
|
||||
`internal/api/response.go` 定义公共响应结构;仅含 `AGENTS.md` 的目录暂不构成 Go 包。
|
||||
业务逻辑、数据库访问、HTTP API 与迁移文件均未实现;架构文档中标注示例的
|
||||
文件(links 等)尚未创建。当前运行程序后直接退出——不连接数据库,
|
||||
也不启动 HTTP 服务。
|
||||
已搭建目录骨架、程序入口 `main.go` 与 HTTP 通路:启动时加载 `etc/lyra.toml`,
|
||||
注册 `GET /hello`(经 `httpx.OK` 输出响应)并启动 HTTP 服务;路由注册配有
|
||||
httptest 回归测试,不监听实际端口、不连接数据库。各内部目录的职责与依赖
|
||||
约束记录在 `AGENTS.md` 中。数据库访问、迁移文件与真实业务逻辑均未实现;
|
||||
架构文档中标注“待新增”的文件(links 等)尚未创建。
|
||||
|
||||
## 目录职责
|
||||
|
||||
| 路径 | 职责 |
|
||||
|---|---|
|
||||
| `cmd/lyra/` | 程序入口:启动、依赖组装、退出清理(待实现) |
|
||||
| `internal/api/` | HTTP 请求/响应 DTO,按资源分文件 |
|
||||
| `cmd/lyra/` | 程序入口:启动、依赖组装、退出清理 |
|
||||
| `internal/api/` | HTTP 请求/响应 DTO,按资源分文件(平铺) |
|
||||
| `internal/config/` | 配置定义与加载 |
|
||||
| `internal/postgres/` | PostgreSQL 连接(pgx stdlib) |
|
||||
| `internal/router/` | 路由注册、项目路径前缀 |
|
||||
| `internal/handler/` | 参数绑定、DTO 转换、响应输出 |
|
||||
| `internal/service/` | 业务规则、事务协调 |
|
||||
| `internal/model/` | 数据结构定义与数据访问(SQL) |
|
||||
| `internal/httpx/` | 公共响应辅助,按需实现 |
|
||||
| `internal/postgres/` | PostgreSQL 连接(pgx stdlib,待实现) |
|
||||
| `internal/router/` | 路由注册、项目路径前缀(router.go,平铺) |
|
||||
| `internal/handler/` | 参数绑定、DTO 转换、响应输出;可按业务分包,服务级简单接口平铺在根包 |
|
||||
| `internal/service/` | 业务规则、事务协调;可按业务分包,服务级简单接口平铺在根包 |
|
||||
| `internal/model/` | 数据结构定义与数据访问(SQL,平铺) |
|
||||
| `internal/httpx/` | 公共响应辅助 |
|
||||
| `migrations/` | Goose SQL 迁移文件(暂无) |
|
||||
| `docs/` | 架构与计划文档 |
|
||||
|
||||
## 运行
|
||||
|
||||
Go 命令在本目录(module 根)下执行:
|
||||
Go 命令在本目录(module 根)下执行;配置路径 `etc/lyra.toml` 按当前工作目录
|
||||
解析,换目录运行会找不到配置:
|
||||
|
||||
```bash
|
||||
go run ./cmd/lyra # 当前直接退出,不连接数据库、不启动 HTTP
|
||||
go test ./... # 当前无测试文件,仅验证各包可编译
|
||||
go run ./cmd/lyra # 启动 HTTP 服务,监听地址与端口见 etc/lyra.toml
|
||||
go test ./... # 含路由回归测试
|
||||
```
|
||||
|
||||
配置中的 `app.env` 直接传给 `gin.SetMode`,仅支持 `debug`/`release`/`test`。
|
||||
|
||||
## 技术栈
|
||||
|
||||
已引入 Gin 与 Viper(读取 TOML 配置),go.sum 已生成;
|
||||
|
||||
Reference in New Issue
Block a user