# Lyra 链接、分类、设置等资源的后端服务(规划中)。目标结构与技术选型见 [docs/architecture.md](docs/architecture.md)。 ## 当前状态 已搭建目录骨架、程序入口 `main.go` 与 HTTP 通路:启动时加载 `etc/lyra.toml`, 注册 `GET /hello`(经 `httpx.OK` 输出响应)并启动 HTTP 服务;路由注册配有 httptest 回归测试,不监听实际端口、不连接数据库。各内部目录的职责与依赖 约束记录在 `AGENTS.md` 中。数据库访问、迁移文件与真实业务逻辑均未实现; 架构文档中标注“待新增”的文件(links 等)尚未创建。 ## 目录职责 | 路径 | 职责 | |---|---| | `cmd/lyra/` | 程序入口:启动、依赖组装、退出清理 | | `internal/api/` | HTTP 请求/响应 DTO,按资源分文件(平铺) | | `internal/config/` | 配置定义与加载 | | `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 根)下执行;配置路径 `etc/lyra.toml` 按当前工作目录 解析,换目录运行会找不到配置: ```bash go run ./cmd/lyra # 启动 HTTP 服务,监听地址与端口见 etc/lyra.toml go test ./... # 含路由回归测试 ``` 配置中的 `app.env` 直接传给 `gin.SetMode`,仅支持 `debug`/`release`/`test`。 ## 技术栈 已引入 Gin 与 Viper(读取 TOML 配置),go.sum 已生成; PostgreSQL、Squirrel + sqlx(pgx stdlib 驱动)与 Goose 为目标选型,随后续功能引入。