GoFrame 基础
XYGo Admin 2025-02-20 125 次阅读
GoFrame v2 框架核心概念与配置文件说明
GoFrame 基础
框架简介
XYGo Admin 后端基于 GoFrame v2 构建,GoFrame 是一款模块化、高性能的 Go 应用开发框架。
核心概念
项目结构约定
GoFrame 推荐的标准项目结构:
server/
├── api/ # 对外接口定义(请求/响应结构体)
├── internal/ # 内部逻辑(不可被外部包引用)
│ ├── cmd/ # 入口命令
│ ├── controller/
│ ├── logic/
│ ├── service/
│ ├── model/
│ └── dao/
├── manifest/
│ └── config/ # 配置文件
├── hack/ # CLI 工具配置
└── main.go
g.Meta 声明式路由
GoFrame 使用结构体 tag 声明路由,无需手动注册:
go
type HelloReq struct {
g.Meta `path:"/hello" method:"get" tags:"示例" summary:"Hello接口"`
Name string `json:"name" v:"required#请输入名称"`
}
type HelloRes struct {
Message string `json:"message"`
}
自动校验
通过 v tag 实现参数自动校验:
go
Name string `v:"required|length:2,20#名称不能为空|长度2-20"`
Email string `v:"required|email"`
Age int `v:"between:1,150"`
配置文件
主配置文件位于 server/manifest/config/config.yaml:
yaml
server:
address: ":8000"
serverRoot: "resource/public"
database:
default:
link: "pgsql:postgres:123456@tcp(127.0.0.1:5432)/xygoadmin"
debug: true
prefix: "xy_"
redis:
default:
address: 127.0.0.1:6379
db: 0
logger:
path: "logs"
level: "all"
stdout: true
CLI 工具
GoFrame CLI(gf)提供代码生成能力:
bash
# 生成 DAO + Entity + DO
gf gen dao
# 生成 Service 接口
gf gen service
# 运行项目(支持热重载)
gf run main.go
CLI 配置文件:server/hack/config.yaml
yaml
gfcli:
gen:
dao:
link: "pgsql:postgres:123456@tcp(127.0.0.1:5432)/xygonew"
removePrefix: "xy_"
jsonCase: "CamelLower"
service:
srcFolder: "internal/logic"
dstFolder: "internal/service"