Skip to content

Gooze-Starter 是什么?

Gooze-Starter 是一款基于 Go + Gin 的现代化 Web 项目脚手架,聚焦开发效率与工程标准化,支持模块化开发、插件式扩展、可插拔数据库、多环境配置、命令行工具等特性。

TIP

后文全部简称为 gooze,包括主包名也是 gooze

  • 它是站在巨人的肩膀上而实现的,使用了大量优质的第三方包,介意请慎用

  • 它只是我为了快速构建自己的项目而创建的,让我不必在每新建一个新项目都复制这些代码

  • 它只是把日常工作中常用的工具和第三方包进行了整合,没有什么高深的技术,也不会有任何的性能影响

  • 在项目中,把常用的 MySQL、HTTP、Redis、MongoDB 等以模块化的方式按需加载

只是想尝试一下?跳到 快速开始

特性

Gooze-Starter 旨在让 Go 后端服务的构建「更快、更清晰、更优雅」。

  • 超低学习成本与模块化解耦:基于流行的第三方库封装,内置大量服务与工具,让你聚焦业务逻辑的实现。

  • 多数据库驱动可自由切换:GORM 与 SQLX 可自由切换,既保留链式操作的便捷,也支持原生 SQL 查询,兼顾灵活性与性能。

  • 完善的认证与权限系统:内置 JWT 认证、Casbin 鉴权机制,结合Gooze-VBen-Admin,快速搭建企业级后台系统。

  • CLI 工具与自动生成:内置 gooze 命令行工具,支持自动生成路由、控制器、Model(待实现)、CURD(待实现)等结构代码。

开发体验

  1. 让你的 httpwebsocket 服务变得简单

    gooze 内置了服务管理,你只要按照规范要求进行服务的 Register,然后在 main.go 中匿名导入,你就可以使用这个服务了

    go
    // http_server.go
    func init() {
        gooze.RegisterService(&HttpServer{})
    }
    
    type HttpServer struct {
        *gooze.IServer
    
        httpModule httpmodule.IHttp  // 这个非必需的,你可以使用内置的 http 模块,也可以自行实现
    }
    
    func (self *HttpServer) OnStart() (err error) {
        // TODO implement
    
        return nil
    }

    更多服务介绍 看这里

  2. gooze 内置了很多模块,你只需在配置文件中配置基本参数,在 main.go 中匿名导入,你就可以使用这个模块了

    例如:mongo 模块,配置文件 看这里

    go
    package main
    
    import (
        _ "github.com/soryetong/gooze-starter/modules/mongomodule"
    
        "github.com/soryetong/gooze-starter/gooze"
    )
    
    func main() {
        gooze.Run()
    }

    只需要这一行代码,即可通过 gooze.Mdb 进行 mongo 的数据操作了

    更多模块介绍 看这里

  3. gooze 内置了很多的工具函数,足以让我们在日常开发中使用了

    此时,强烈推荐一个三方库 github.com/spf13/cast, 使用它,可以进行各种 interface to stringint64 to string 等等这种的类型转换

    工具函数介绍 看这里

  4. gooze 内置了 gen api 指令,可通过 **.api 文件快速生成 dtohandlerservicerouterhttpServer 代码

    你只需要按照 api 文件的要求填入内容即可,没有其他复杂操作

    gen api 代码生成介绍 看这里

    它你也完全可以不使用,但是使用它,能为我们的开发提升效率

  5. gooze 提供了配置的 cli 工具,使用 cli 工具可以一键生成一个优雅的 Go 项目结构

    gooze-cli 介绍 看这里


更多功能等你改进...

基于 MIT 许可发布