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"