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(待实现)等结构代码。
开发体验
让你的
http
、websocket
服务变得简单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 }
更多服务介绍 看这里。
gooze
内置了很多模块,你只需在配置文件中配置基本参数,在main.go
中匿名导入,你就可以使用这个模块了例如:
mongo
模块,配置文件 看这里gopackage main import ( _ "github.com/soryetong/gooze-starter/modules/mongomodule" "github.com/soryetong/gooze-starter/gooze" ) func main() { gooze.Run() }
只需要这一行代码,即可通过
gooze.Mdb
进行mongo
的数据操作了更多模块介绍 看这里。
gooze
内置了很多的工具函数,足以让我们在日常开发中使用了此时,强烈推荐一个三方库
github.com/spf13/cast
, 使用它,可以进行各种interface to string
、int64 to string
等等这种的类型转换工具函数介绍 看这里。
gooze
内置了gen api
指令,可通过**.api
文件快速生成dto
、handler
、service
、router
、httpServer
代码你只需要按照
api
文件的要求填入内容即可,没有其他复杂操作gen api
代码生成介绍 看这里。它你也完全可以不使用,但是使用它,能为我们的开发提升效率
gooze
提供了配置的cli
工具,使用cli
工具可以一键生成一个优雅的 Go 项目结构gooze-cli
介绍 看这里。
更多功能等你改进...