Files
cmroubao/backend-api/README.md
T

1.7 KiB

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/ 运行数据不得提交。

命令

$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。当前 loopback 门禁不是身份认证,不能 通过修改监听地址把管理页面直接开放到局域网。