golang快速搭建流行框架项目的插件库go-blueprint的使用
Golang快速搭建流行框架项目的插件库go-blueprint的使用
介绍终极Golang蓝图库
Go Blueprint是一个CLI工具,可以让用户无缝地创建一个具有相应结构的Go项目。它还提供了与更流行的Go框架集成的选项(并且随着新功能的增加,列表还在不断增长)!
为什么要使用它?
- 易于设置和安装
- 已经建立了完整的Go结构
- 设置Go HTTP服务器(或使用Fiber的Fasthttp)
- 与流行框架集成
- 专注于应用程序的实际代码
安装
Go安装
go install github.com/melkeydev/go-blueprint@latest
这将安装一个Go二进制文件,它会自动绑定到你的$GOPATH
如果你使用Zsh,你需要手动将其添加到
~/.zshrc
中。
GOPATH=$HOME/go PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
别忘了更新
source ~/.zshrc
NPM安装
npm install -g go-blueprint
Homebrew安装
brew install go-blueprint
然后在新终端中运行:
go-blueprint create
你也可以使用提供的标志来设置项目,而无需与UI交互。
go-blueprint create --name my-project --framework gin --driver postgres --git commit
查看go-blueprint create -h
获取所有选项和简写。
支持的框架
- Chi
- Gin
- Fiber
- HttpRouter
- Gorilla/mux
- Echo
数据库支持
Go Blueprint现在提供了增强的数据库支持,允许你在项目设置期间选择你喜欢的数据库驱动。使用--driver
或-d
标志来指定你想集成到项目中的数据库驱动。
支持的数据库驱动
从各种支持的数据库驱动中选择:
- Mysql
- Postgres
- Sqlite
- Mongo
- Redis
- ScyllaDB GoCQL
高级功能
Blueprint专注于尽可能简约。也就是说,我们希望能够在不影响整体体验的情况下添加其他人可能想要的其他功能。
你现在可以在运行create
命令时使用--advanced
标志来访问以下功能。这是一个多选项提示;可以同时使用一个或多个功能:
- 使用Templ的HTMX支持
- 使用Github Actions的CI/CD工作流设置
- Websocket设置websocket端点
- Tailwind css框架
- Go项目的Docker配置
- 用TypeScript编写的React前端,包括向后端发送示例fetch请求
注意:选择Tailwind选项将自动选择HTMX,除非明确选择React
Blueprint UI
Blueprint UI是一个Web应用程序,允许你为CLI创建命令并预览项目的结构。你将能够看到在执行命令时将创建的目录和文件。
使用示例
以下是一个设置具有特定数据库驱动的项目的示例:
go-blueprint create --name my-project --framework gin --driver postgres --git commit
高级功能可通过–advanced标志访问
go-blueprint create --advanced
高级功能可以使用--feature
标志与--advanced
标志一起启用。
HTMX:
go-blueprint create --advanced --feature htmx
CI/CD工作流:
go-blueprint create --advanced --feature githubaction
Websocket:
go-blueprint create --advanced --feature websocket
Tailwind:
go-blueprint create --advanced --feature tailwind
Docker:
go-blueprint create --advanced --feature docker
React:
go-blueprint create --advanced --feature react
或者一次启用所有功能:
go-blueprint create --name my-project --framework chi --driver mysql --advanced --feature htmx --feature githubaction --feature websocket --feature tailwind --feature docker --git commit --feature react
GitHub统计
许可证
根据MIT许可证授权
更多关于golang快速搭建流行框架项目的插件库go-blueprint的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于golang快速搭建流行框架项目的插件库go-blueprint的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go-Blueprint 快速搭建流行框架项目
Go-Blueprint 是一个用于快速搭建 Golang 项目的脚手架工具,它可以帮助开发者快速初始化各种流行框架的项目结构。下面我将详细介绍如何使用 go-blueprint。
安装 Go-Blueprint
首先需要安装 go-blueprint:
go install github.com/go-blueprint/cli/cmd/bp@latest
安装完成后,可以通过 bp --help
查看可用命令。
常用命令
1. 创建新项目
bp new <project-name>
这会创建一个基础项目结构,包含:
- main.go
- go.mod
- 基本目录结构
2. 添加框架支持
Go-Blueprint 支持多种流行框架,可以通过以下命令添加:
# 添加 Gin 框架
bp add gin
# 添加 Echo 框架
bp add echo
# 添加 Fiber 框架
bp add fiber
# 添加 Beego 框架
bp add beego
3. 添加数据库支持
# 添加 GORM 支持
bp add gorm
# 添加 SQLx 支持
bp add sqlx
# 添加 MongoDB 支持
bp add mongo
4. 添加认证支持
# 添加 JWT 认证
bp add jwt
示例:创建 Gin + GORM 项目
下面是一个完整的示例,展示如何创建一个包含 Gin 和 GORM 的项目:
# 创建新项目
bp new my-gin-app
# 进入项目目录
cd my-gin-app
# 添加 Gin 框架
bp add gin
# 添加 GORM 支持
bp add gorm
# 添加 JWT 认证
bp add jwt
项目结构
执行上述命令后,项目结构大致如下:
my-gin-app/
├── cmd/
│ └── server/
│ └── main.go
├── internal/
│ ├── config/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── utils/
├── pkg/
├── go.mod
└── go.sum
生成的代码示例
main.go
package main
import (
"log"
"my-gin-app/internal/config"
"my-gin-app/internal/routes"
)
func main() {
// 初始化配置
cfg, err := config.Load()
if err != nil {
log.Fatalf("Failed to load config: %v", err)
}
// 初始化路由
router := routes.Setup(cfg)
// 启动服务器
if err := router.Run(":" + cfg.Server.Port); err != nil {
log.Fatalf("Failed to start server: %v", err)
}
}
路由示例 (internal/routes/router.go)
package routes
import (
"github.com/gin-gonic/gin"
"my-gin-app/internal/config"
"my-gin-app/internal/controllers"
)
func Setup(cfg *config.Config) *gin.Engine {
router := gin.Default()
// 健康检查路由
router.GET("/health", func(c *gin.Context) {
c.JSON(200, gin.H{
"status": "ok",
})
})
// 用户路由组
userController := controllers.NewUserController(cfg)
userGroup := router.Group("/users")
{
userGroup.GET("", userController.GetUsers)
userGroup.POST("", userController.CreateUser)
userGroup.GET("/:id", userController.GetUserByID)
}
return router
}
配置示例 (internal/config/config.go)
package config
import (
"log"
"os"
"github.com/spf13/viper"
)
type Config struct {
Server struct {
Port string `mapstructure:"port"`
} `mapstructure:"server"`
Database struct {
Host string `mapstructure:"host"`
Port string `mapstructure:"port"`
User string `mapstructure:"user"`
Password string `mapstructure:"password"`
Name string `mapstructure:"name"`
} `mapstructure:"database"`
JWT struct {
Secret string `mapstructure:"secret"`
} `mapstructure:"jwt"`
}
func Load() (*Config, error) {
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.AutomaticEnv()
if err := viper.ReadInConfig(); err != nil {
log.Printf("Error reading config file, %s", err)
}
var cfg Config
if err := viper.Unmarshal(&cfg); err != nil {
return nil, err
}
// 设置默认值
if cfg.Server.Port == "" {
cfg.Server.Port = "8080"
}
return &cfg, nil
}
自定义模板
Go-Blueprint 允许你自定义项目模板。你可以在项目根目录创建 .blueprint
文件夹,并在其中添加自定义模板。
优势
- 快速启动:几分钟内搭建完整项目结构
- 标准化:遵循最佳实践的项目结构
- 模块化:按需添加功能模块
- 可扩展:支持自定义模板
总结
Go-Blueprint 是一个强大的工具,可以显著减少项目初始化时间,特别适合需要快速原型开发或遵循标准化结构的团队。通过简单的命令组合,你可以快速搭建出包含各种流行框架和组件的项目基础。