golang gin框架入门脚手架,开箱即用

golang gin框架入门脚手架,开箱即用
最新回答
夏晨曦

2023-11-21 15:04:30

gin-layout 是一个基于 Gin 框架的 Go 项目脚手架,提供开箱即用的项目结构和基础功能,适合快速启动业务开发。以下是关键内容提炼和操作指南:

核心功能
  1. 项目初始化

    首次运行自动复制示例配置文件(config/config.example.yaml → config.yaml)。

    依赖管理:通过 go mod download 下载所需包。

  2. 路由示例

    提供 /api/v1/hello-world 接口,支持查询参数(如 name=world)。

    响应格式统一为 JSON(包含状态码、消息、数据和耗时)。

  3. 配置管理

    支持 YAML 和 INI 格式配置(示例文件见 config/ 目录)。

    配置结构体定义在 config/autoload/ 下(如 app.go、mysql.go)。

  4. 中间件

    内置常用中间件:CORS、日志记录、异常恢复、请求耗时统计(见 internal/middleware/)。

  5. 数据库与缓存

    集成 GORM(MySQL)和 go-redis(Redis),初始化代码在 data/ 目录。

  6. 日志系统

    使用 zap 库,支持日志切割(lumberjack 和 file-rotatelogs)。

目录结构说明.├── boot/ # 项目初始化逻辑├── config/ # 配置文件与初始化代码│ ├── autoload/ # 配置结构体定义│ └── examples/ # 示例配置文件├── data/ # 数据层初始化(MySQL/Redis)├── internal/ # 核心业务逻辑(不对外暴露)│ ├── controller/ # 控制器(含示例代码)│ ├── middleware/ # 中间件│ ├── model/ # 数据模型│ ├── pkg/ # 内部工具包(错误码、日志、响应)│ ├── routers/ # 路由定义│ ├── service/ # 业务逻辑│ └── validator/ # 参数验证├── pkg/ # 可复用的外部包(工具函数、类型转换)└── cmd/ # 程序入口(main.go)快速开始
  1. 拉取代码并运行

    git clone
    https://github.com/wannanbigpig/gin-layout.gitcd
    gin-layoutgo env -w GO111MODULE=on # 启用模块支持go mod download # 下载依赖go run cmd/main.go # 启动服务(默认端口 9999)
  2. 测试接口

    curl "
    http://127.0.0.1:9999/api/v1/hello-world"curl
    "
    http://127.0.0.1:9999/api/v1/hello-world?name=world"
生产部署
  1. 打包与运行

    go build -o cmd/go_layout_linux cmd/main.go # 编译为 Linux 可执行文件./cmd/go_layout_linux -c="/path/to/config.yaml" # 指定配置文件路径
  2. 进程管理(Supervisor 示例)

    [program:go-layout]command=/home/go-layout/go_layout_linux -c=/home/go/config.yamldirectory=/home/go/go-layoutautostart=trueuser=rootstdout_logfile=/home/go/go-layout/supervisord.log
  3. Nginx 反向代理

    server { listen 80; server_name api.example.com; location / { proxy_pass
    http://127.0.0.1:9999;
    proxy_set_header Host $host; }}
注意事项
  • 配置文件:生产环境需修改 config.yaml,尤其是 base_path(日志存储路径)。
  • 依赖管理:核心包包括 gin、gorm、zap、validator 等(详见 go.mod)。
  • 代码贡献:欢迎通过 Fork + PR 提交改进。
适用场景
  • 快速搭建 Gin 后端服务。
  • 需要统一项目结构(路由、中间件、日志、配置分离)。
  • 希望减少重复初始化代码(数据库连接、中间件注册等)。

通过 gin-layout,开发者可专注于业务逻辑,避免从零搭建项目的繁琐工作。