- common/tools 工具模块,10 个子功能:md5/cryptox/uuid/random/timex/convertx/strx/slicex/ip/filex(薄封装 GoFrame 内置组件) - AGENTS.md 项目智能体说明书(架构、规范、命令、记忆体系索引) - docs/change-log/2026-08-24.md 本次请求与变更记录 - .gitignore 排除 .workbuddy/;PROJECT_STRUCTURE.md 补充目录树 |
||
|---|---|---|
| api | ||
| common | ||
| docs/change-log | ||
| hack | ||
| internal | ||
| manifest | ||
| resource | ||
| utility | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| Makefile | ||
| PROJECT_STRUCTURE.md | ||
| README.MD | ||
Personal multi-client service
Layout
api → internal/controller → internal/service → internal/dao → internal/model(entity/do) is enforced. DTO and VO live in internal/model/dto and internal/model/vo; neither API types nor entities cross that boundary.
Database model generation
Run manifest/sql/001_core.sql on MySQL, set DB_DSN, then run:
gf gen dao -p internal -g default -gt -c
The command is intentionally the only source of internal/dao, internal/model/do, and internal/model/entity.
API isolation
/api/v1/*: user API, terminal header/body supportsmini,h5, andapp./admin/v1/*: admin API. Protected endpoints require both an admin access token and anX-Permissionidentifier.
Use GF_GCFG_FILE=config.dev.yaml (or config.test.yaml / config.prod.yaml) and set DB_DSN plus a strong JWT_SECRET before startup.