49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
# Admin Server Monorepo Architecture
|
||
|
||
## 当前结论
|
||
|
||
`hyapp-admin-server` 已迁入 `hyapp-server/server/admin`,但仍保持独立 Go module。目录合并只解决开发协作和契约共享问题,不改变服务边界。
|
||
|
||
## Module 边界
|
||
|
||
```text
|
||
hyapp-server/
|
||
go.work
|
||
api/ 独立 Go module:hyapp.local/api
|
||
services/ app 后端服务实现
|
||
server/admin/ 独立 Go module:hyapp-admin-server
|
||
```
|
||
|
||
- `api` 只放 protobuf contract 和生成代码。
|
||
- `services/*` 只放 app 后端服务实现。
|
||
- `server/admin` 只放后台管理服务实现、后台权限、后台菜单、后台审计和后台 HTTP API。
|
||
|
||
## 允许依赖
|
||
|
||
- `hyapp` app 后端服务可以依赖 `hyapp.local/api/proto/...`。
|
||
- `hyapp-admin-server` 可以依赖 `hyapp.local/api/proto/...`。
|
||
- `hyapp-admin-server` 的 app 业务访问必须收口到 `internal/integration/*` 或对应业务模块内的明确 client 接口。
|
||
|
||
## 禁止依赖
|
||
|
||
- `hyapp-admin-server` 禁止 import `hyapp/services/*`。
|
||
- `hyapp-admin-server` 禁止 import `hyapp/internal/*`。
|
||
- `hyapp-admin-server` 禁止 import `hyapp/pkg/*`。
|
||
- 后台专属基础设施放在 `server/admin/internal/platform`,不要把 app 后端 `pkg` 当共享库使用。
|
||
|
||
## 运行与验证
|
||
|
||
在 `hyapp-server` 根目录运行:
|
||
|
||
```bash
|
||
make proto
|
||
make test
|
||
make build
|
||
```
|
||
|
||
在 `hyapp-server/server/admin` 单独运行后台:
|
||
|
||
```bash
|
||
go run ./cmd/server -config configs/config.yaml
|
||
```
|