gin-scaffold

command module
v0.0.0-...-22e3136 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

README

gin-scaffold 脚手架

简介

gin-scaffold 是一个现代化的 Go Web 服务端脚手架,基于 Gin 框架,集成主流企业级能力,并在 docs 目录下附带了完善的 Go 语言开发规范,助力团队高效、规范地推进中大型项目开发。

技术栈

  • Go 1.25.1
  • Gin:Web 框架,路由与中间件支持
  • GORM:ORM 框架,支持 PostgreSQL、MySQL、SQLite,自动迁移
  • go-redis/v9:Redis 客户端,连接池与健康检查
  • Logrus + file-rotatelogs/lfshook:结构化日志,分级与轮转
  • Viper + fsnotify:配置管理,支持多环境与热加载
  • Wire:依赖注入
  • Kafka (sarama):消息队列,生产者/消费者
  • SSE (gin-contrib/sse):服务端推送
  • go-playground/validator/v10:参数校验
  • go-i18n/v2:国际化
  • bwmarrin/snowflake:雪花 ID
  • 中间件:RequestID、CORS、Gzip、Secure、Recovery、事务、验证码等
  • 工具库:文件处理、模板渲染、速率限制、分布式队列、错误处理、VO、AI(OpenAI/Gemini)、API 示例等

快速开始

  1. 克隆本仓库并安装依赖
git clone https://github.com/Done-0/gin-scaffold.git
  1. 根据 example 文件配置 configs/config.local.yamlconfigs/config.prod.yaml

  2. 启动服务

go run main.go

适用场景

  • 企业级后端系统开发
  • 微服务架构与分布式服务
  • RESTful API 服务
  • 高并发与高可用业务场景
  • 快速原型及功能验证
  • 追求高可维护性、易扩展的 Go 项目

主要模块说明

  • 数据库模块:支持 PostgreSQL、MySQL、SQLite,自动建库与迁移,灵活参数配置,统一管理入口,基于 GORM 实现
  • 缓存模块:全局 Redis 客户端,连接池、超时、健康检查,统一管理,适用于缓存和分布式场景
  • 日志模块:统一接口,结构化日志,分级、自动轮转,便于生产环境分析与追踪
  • 中间件与工具:集成请求 ID、CORS、安全、恢复、Gzip、事务、验证码、参数校验、雪花 ID等常用功能,提升安全性与开发效率
  • 优雅启动与关闭:支持信号优雅关闭,自动释放数据库和缓存资源,保障服务稳定性
  • API与测试示例:内置多组接口和测试用例,便于快速验证各模块功能和业务逻辑

架构推荐

经典三层架构
./pkg
├── ./pkg/router
│   ├── ./pkg/router/routes # 路由组
│   │   ├── ./pkg/router/routes/test_routes.go
│   │   └── ./pkg/router/routes/user_routes.go
│   └── ./pkg/router/router.go
├── ./pkg/serve
│   ├── ./pkg/serve/controller # controller 控制层
│   │   └── ./pkg/serve/controller
│   │       ├── ./pkg/serve/controller/dto # dto
│   │       │   ├── ./pkg/serve/controller/dto/user_dto.go
│   │       │   └── ./pkg/serve/controller/dto/test_dto.go
│   │       ├── ./pkg/serve/controller/user_controller.go
│   │       └── ./pkg/serve/controller/test_controller.go
│   ├── ./pkg/serve/mapper # mapper 层
│   │   └── ./pkg/serve/mapper
│   │       ├── ./pkg/serve/mapper/impl
│   │       │   ├── ./pkg/serve/mapper/impl/user_mapper_impl.go
│   │       │   └── ./pkg/serve/mapper/impl/test_mapper_impl.go
│   │       ├── ./pkg/serve/mapper/test_mapper.go
│   │       └── ./pkg/serve/mapper/user_mapper.go
│   └── ./pkg/serve/service # service 服务层
│       └── ./pkg/serve/service
│           ├── ./pkg/serve/service/impl
│           │   ├── ./pkg/serve/service/impl/user_service_impl.go
│           │   └── ./pkg/serve/service/impl/test_service_impl.go
│           ├── ./pkg/serve/service/user_service.go
│           └── ./pkg/serve/service/test_service.go
└── ./pkg/vo
    └── ./pkg/vo # vo
        ├── ./pkg/vo/user_vo.go
        └── ./pkg/vo/test_vo.go

贡献

欢迎 issue 和 PR!

许可证

本项目采用 Apache License 2.0 协议开源

Documentation

Overview

Package main provides the main entry point for the application Author: Done-0 Created: 2025-09-25

Directories

Path Synopsis
Package cmd provides application startup and runtime entry point Author: Done-0 Created: 2025-09-25
Package cmd provides application startup and runtime entry point Author: Done-0 Created: 2025-09-25
Package configs provides application configuration loading and updating functionality Author: Done-0 Created: 2025-09-25
Package configs provides application configuration loading and updating functionality Author: Done-0 Created: 2025-09-25
internal
ai
Package ai provides AI service functionality for multiple providers Author: Done-0 Created: 2025-08-31
Package ai provides AI service functionality for multiple providers Author: Done-0 Created: 2025-08-31
ai/internal
Package internal provides AI service internal implementation Author: Done-0 Created: 2025-08-31
Package internal provides AI service internal implementation Author: Done-0 Created: 2025-08-31
ai/internal/prompter
Package prompter provides dynamic prompt loading and management Author: Done-0 Created: 2025-08-31
Package prompter provides dynamic prompt loading and management Author: Done-0 Created: 2025-08-31
ai/internal/provider
Package provider defines AI provider interface Author: Done-0 Created: 2025-08-31
Package provider defines AI provider interface Author: Done-0 Created: 2025-08-31
ai/internal/provider/deepseek
Package deepseek implements DeepSeek API provider Author: Done-0 Created: 2025-01-24
Package deepseek implements DeepSeek API provider Author: Done-0 Created: 2025-01-24
ai/internal/provider/gemini
Package gemini implements Google Gemini API provider Author: Done-0 Created: 2025-01-24
Package gemini implements Google Gemini API provider Author: Done-0 Created: 2025-01-24
ai/internal/provider/openai
Package openai implements OpenAI-compatible API provider Author: Done-0 Created: 2025-01-24
Package openai implements OpenAI-compatible API provider Author: Done-0 Created: 2025-01-24
ai/internal/selector
Package selector provides AI provider round-robin selector Author: Done-0 Created: 2025-01-24
Package selector provides AI provider round-robin selector Author: Done-0 Created: 2025-01-24
ai/internal/types
Package types defines AI provider types Author: Done-0 Created: 2025-08-31
Package types defines AI provider types Author: Done-0 Created: 2025-08-31
db
Package db provides database management functionality Author: Done-0 Created: 2025-08-24
Package db provides database management functionality Author: Done-0 Created: 2025-08-24
db/internal
Package internal provides database connection functionality Author: Done-0 Created: 2025-08-24
Package internal provides database connection functionality Author: Done-0 Created: 2025-08-24
i18n
Package i18n provides internationalization management functionality Author: Done-0 Created: 2025-08-24
Package i18n provides internationalization management functionality Author: Done-0 Created: 2025-08-24
i18n/internal
Package internal provides i18n management functionality Author: Done-0 Created: 2025-08-24
Package internal provides i18n management functionality Author: Done-0 Created: 2025-08-24
logger
Package logger provides application logging functionality initialization and configuration Author: Done-0 Created: 2025-09-25
Package logger provides application logging functionality initialization and configuration Author: Done-0 Created: 2025-09-25
logger/internal
Package internal provides logger management functionality Author: Done-0 Created: 2025-09-25
Package internal provides logger management functionality Author: Done-0 Created: 2025-09-25
middleware
Package middleware provides common middleware functionality Author: Done-0 Created: 2025-09-25
Package middleware provides common middleware functionality Author: Done-0 Created: 2025-09-25
middleware/cors
Package cors provides Gin middleware for CORS management Author: Done-0 Created: 2025-09-25
Package cors provides Gin middleware for CORS management Author: Done-0 Created: 2025-09-25
model
Package model provides database model definitions and management Author: Done-0 Created: 2025-08-24
Package model provides database model definitions and management Author: Done-0 Created: 2025-08-24
model/base
Package base provides base model definitions and common database operations Author: Done-0 Created: 2025-09-25
Package base provides base model definitions and common database operations Author: Done-0 Created: 2025-09-25
model/user
Package user provides user data model definitions Author: Done-0 Created: 2025-09-25
Package user provides user data model definitions Author: Done-0 Created: 2025-09-25
queue
Package queue provides Kafka message queue functionality Author: Done-0 Created: 2025-08-25
Package queue provides Kafka message queue functionality Author: Done-0 Created: 2025-08-25
queue/internal
Package internal provides Kafka consumer implementation Author: Done-0 Created: 2025-08-25
Package internal provides Kafka consumer implementation Author: Done-0 Created: 2025-08-25
redis
Package redis provides Redis connection and management functionality Author: Done-0 Created: 2025-09-25
Package redis provides Redis connection and management functionality Author: Done-0 Created: 2025-09-25
redis/internal
Package internal provides Redis manager implementation Author: Done-0 Created: 2025-09-25
Package internal provides Redis manager implementation Author: Done-0 Created: 2025-09-25
sse
Package sse provides Server-Sent Events functionality Author: Done-0 Created: 2025-08-31
Package sse provides Server-Sent Events functionality Author: Done-0 Created: 2025-08-31
sse/internal
Package internal provides SSE manager implementation Author: Done-0 Created: 2025-08-31
Package internal provides SSE manager implementation Author: Done-0 Created: 2025-08-31
types/consts
Package consts provides application constant definitions Author: Done-0 Created: 2025-09-25
Package consts provides application constant definitions Author: Done-0 Created: 2025-09-25
types/errno
Package errno provides system-level error code definitions Author: Done-0 Created: 2025-09-25
Package errno provides system-level error code definitions Author: Done-0 Created: 2025-09-25
utils/email
Package email provides email operation related utilities Author: Done-0 Created: 2025-08-24
Package email provides email operation related utilities Author: Done-0 Created: 2025-08-24
utils/errorx
Package errorx provides error handling utilities with status codes and stack traces Author: Done-0 Created: 2025-09-25
Package errorx provides error handling utilities with status codes and stack traces Author: Done-0 Created: 2025-09-25
utils/errorx/code
Package code provides error code registration adapter Author: Done-0 Created: 2025-09-25
Package code provides error code registration adapter Author: Done-0 Created: 2025-09-25
utils/errorx/internal
Package internal provides error message wrapping internal implementation Author: Done-0 Created: 2025-09-25
Package internal provides error message wrapping internal implementation Author: Done-0 Created: 2025-09-25
utils/file
Package file provides file loading and saving utilities Author: Done-0 Created: 2025-08-31
Package file provides file loading and saving utilities Author: Done-0 Created: 2025-08-31
utils/i18n
Package i18n provides internationalization utility functions Author: Done-0 Created: 2025-08-24
Package i18n provides internationalization utility functions Author: Done-0 Created: 2025-08-24
utils/rate
Package rate provides rate limiting utilities Author: Done-0 Created: 2025-08-31
Package rate provides rate limiting utilities Author: Done-0 Created: 2025-08-31
utils/snowflake
Package snowflake provides snowflake algorithm ID generation utilities Author: Done-0 Created: 2025-09-25
Package snowflake provides snowflake algorithm ID generation utilities Author: Done-0 Created: 2025-09-25
utils/sse
Package sse provides Server-Sent Events streaming utilities Author: Done-0 Created: 2025-08-31
Package sse provides Server-Sent Events streaming utilities Author: Done-0 Created: 2025-08-31
utils/template
Package template provides template variable substitution utilities Author: Done-0 Created: 2025-08-31
Package template provides template variable substitution utilities Author: Done-0 Created: 2025-08-31
utils/validator
Package validator provides parameter validation utilities Author: Done-0 Created: 2025-08-24
Package validator provides parameter validation utilities Author: Done-0 Created: 2025-08-24
utils/vo
Package vo provides common value objects Author: Done-0 Created: 2025-09-25
Package vo provides common value objects Author: Done-0 Created: 2025-09-25
pkg
router
Package router provides application route registration functionality Author: Done-0 Created: 2025-09-25
Package router provides application route registration functionality Author: Done-0 Created: 2025-09-25
router/routes
Package routes provides route registration functionality Author: Done-0 Created: 2025-09-25
Package routes provides route registration functionality Author: Done-0 Created: 2025-09-25
serve/controller
Package controller provides test controller Author: Done-0 Created: 2025-09-25
Package controller provides test controller Author: Done-0 Created: 2025-09-25
serve/controller/dto
Package dto provides test-related data transfer object definitions Author: Done-0 Created: 2025-09-25
Package dto provides test-related data transfer object definitions Author: Done-0 Created: 2025-09-25
serve/service
Package service provides test service interfaces Author: Done-0 Created: 2025-09-25
Package service provides test service interfaces Author: Done-0 Created: 2025-09-25
serve/service/impl
Package impl provides test service implementation Author: Done-0 Created: 2025-09-25
Package impl provides test service implementation Author: Done-0 Created: 2025-09-25
vo
Package vo provides test-related value object definitions Author: Done-0 Created: 2025-09-25
Package vo provides test-related value object definitions Author: Done-0 Created: 2025-09-25
wire
Package wire provides dependency injection configuration using Google Wire Author: Done-0 Created: 2025-09-25
Package wire provides dependency injection configuration using Google Wire Author: Done-0 Created: 2025-09-25

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL