48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# cmroubao backend API
|
|
|
|
Go 1.23.0、Gin 1.11.0 和 SQLite 构成的单进程采购任务服务。当前提供参考图上传与
|
|
规范化、任务创建/列表/详情/取消 API、服务端渲染管理页面、健康检查和显式数据库
|
|
迁移。T-204 正式管理登录完成前,除 `/healthz` 外的业务路由只接受 loopback 请求。
|
|
|
|
## 环境
|
|
|
|
- Go 1.23.0
|
|
- `CGO_ENABLED=1`
|
|
- PATH 中可用的 GCC
|
|
|
|
可选环境变量:
|
|
|
|
| 变量 | 默认值 | 说明 |
|
|
| --- | --- | --- |
|
|
| `CMROUBAO_HTTP_ADDR` | `127.0.0.1:8080` | HTTP 监听地址;局域网监听必须显式配置 |
|
|
| `CMROUBAO_DATABASE_PATH` | `var/cmroubao.db` | SQLite 文件路径 |
|
|
| `CMROUBAO_ASSET_DIR` | `var/assets` | 规范化参考图片的受控本地目录 |
|
|
|
|
不会自动读取 `.env`。本地配置和 `var/` 运行数据不得提交。
|
|
|
|
## 命令
|
|
|
|
```powershell
|
|
$env:GOTOOLCHAIN = "local"
|
|
go test ./...
|
|
go vet ./...
|
|
go build -o bin/cmroubao-api.exe ./cmd/api
|
|
go build -o bin/cmroubao-migrate.exe ./cmd/migrate
|
|
go run ./cmd/migrate up
|
|
go run ./cmd/migrate status
|
|
go run ./cmd/api
|
|
```
|
|
|
|
API 启动前会检查全部 migration 已应用;发现 pending migration 会拒绝启动并提示先
|
|
执行 `go run ./cmd/migrate up`,不会在服务进程内自动改表。
|
|
|
|
服务启动后,`GET /healthz` 在数据库可用时返回 `200` 和
|
|
`{"status":"ok"}`,不可用时返回 `503` 和 `{"status":"unavailable"}`。管理页面:
|
|
|
|
- `GET /tasks`:任务列表、搜索和状态筛选。
|
|
- `GET /tasks/new`:上传参考图并创建任务。
|
|
- `GET /tasks/{id}`:查看原始约束和任务状态,待领取任务可取消。
|
|
|
|
API 合约见 [`../docs/api.md`](../docs/api.md)。当前 loopback 门禁不是身份认证,不能
|
|
通过修改监听地址把管理页面直接开放到局域网。
|