内容简介:对于那些喜欢使用命令行的同学,你们可以选择使用web界面来操作默认用户名和密码都是
安装felix
git clone https://github.com/dejavuzhou/felix cd felix go mod download go install echo "添加 GOBIN 到 PATH环境变量" echo "或者" go get github.com/dejavuzhou/felix echo "go build && ./felix -h"
What is Ginbro
- Gin脚手架工具:因为工作中非常多次的使用 mysql 数据库 + gin + GORM 来开发RESTful API程序,所以后开发一个Go语言的RESTful APIs的脚手架工具
- Ginbro代码来源:Ginrbo的代码迭代自 github.com/dejavuzhou/ginbro
- SPA二进制化工具:vuejs全家桶代码二进制化成go代码,编译的时候变成二进制,运行的时候直接加载到内存中,同时和gin API在一个域名下不需要再nginx中配置rewrite或者跨域,加快API访问速度
功能一:Gin+GORM_SQL RESTful 脚手架工具
工作原理
- 通过cobra 获取命令行参数
- 使用 sql 参数连接数据库
- 后去数据库表的名称和字段类型等数据库
- 数据库边的表名和字段信息,转换成 Swagger doc 规范 字段 和 GORM 模型字段
- 使用标准库
text/template生成swagger.yaml, GORM 模型文件, GIN handler 文件 ... - 使用
go fmt ./...格式化代码 - 使用标准库
archive/zip打包*.go config.toml ...代码,提供zip文件下载(命令行模式没有)
支持数据库大多数SQL数据库
- mysql
- SQLite
- postgreSQL
- mssql(TODO:: sqlserver)
ginbro 生成app代码包含功能简介
GET<pagination>/POST/GET<one>/PATCH/DELETE
项目演示地址
felix sshw 网页UI演示地址 用户名和密码都是admin
生成swagger API交互文档地址 http://ginbro.mojotv.cn/swagger/
msql生成go代码地址
bili命令行演示视频地址
命令行参数详解
[root@ericzhou felix]# felix ginbro -h
generate a RESTful APIs app with gin and gorm for gophers
Usage:
felix ginbro [flags]
示例:
felix ginbro -a dev.wordpress.com:3306 -P go_package_name -n db_name -u db_username -p 'my_db_password' -d '~/thisDir'
Flags:
--authColumn string 使用bcrypt方式加密的用户表密码字段名称 (default "password")
--authTable string 认知登陆用户表名称 (default "users")
-a, --dbAddr string 数据库连接的地址 (default "127.0.0.1:3306")
-c, --dbChar string 数据库字符集 (default "utf8")
-n, --dbName string 数据库名称
-p, --dbPassword string 数据库密码 (default "password")
-t, --dbType string 数据库类型: mysql/postgres/mssql/sqlite (default "mysql")
-u, --dbUser string 数据库用户名 (default "root")
-d, --dir string golang代码输出的目录,默认是当前目录 (default ".")
-h, --help 帮助
-l, --listen string 生成go app 接口监听的地址 (default "127.0.0.1:5555")
--pkg string 生成go app 包名称(go version > 1.12) 生成go.mod文件, eg: ginbroSon
[root@ericzhou felix]#
web界面
对于那些喜欢使用命令行的同学,你们可以选择使用web界面来操作
git clone https://github.com/dejavuzhou/felix cd felix go mod download go install echo "添加 GOBIN 到 PATH环境变量" echo "go build && ./felix -h" echo 打开Web界面 felix sshw -h felix sshw echo "三秒钟之后会自动帮助你打开浏览器,如果如果你使用的windows或者mac系统"
1.登陆界面
默认用户名和密码都是 admin
2.填写数据库连接信息
3.配置app用户认证的表和字段
4.配置app 包名称,导出目录和监听地址
5.生成go代码
6.下载代码或cd者到指定目录
功能二:前端代码二进化,通过gin中间件整合到API服务
工作原理
- 遍历编译好的前端代码目录
- 使用
archive/zip写入到bytes.buffer中 - 格式化输出层 字符串常量的 go文件中
- 创建gin中间件,加载字符串处理,解析出文件
- 中间件path如果命中文件,这http 输出文件,否在交给下一个handler
参数说明
$ felix ginbin -h 示例: felix ginbin -s dist -p staticbin Usage: felix ginbin [flags] Flags: -c, --comment string 代码注释说明. -d, --dest string 出输go代码到目录. (default ".") -f, --force 是否覆盖输出. (default true) -h, --help 帮助 -m, --mtime 是否修改文件时间戳. -p, --package string 输出的包名称. (default "felixbin") -s, --src string 前端静态文件的目录地址. (default "dist") -t, --tags string go 语言的标签. -z, --zip 是否zip压缩.
使用说明:生成的二进制化go文件
vuejs/dist 使用 felix ginbin 生成的go文件 https://github.com/dejavuzhou/felix/blob/master/staticbin/gin_static.go
gin 路由应用二进制化的前端代码中间件如下:
import "github.com/dejavuzhou/felix/staticbin" //导入felix ginbin 生成的二进制化包
https://github.com/dejavuzhou/felix/blob/master/ssh2ws/ssh2ws.go
r := gin.Default()
r.MaxMultipartMemory = 32 << 20
//sever static file in http's root path
binStaticMiddleware, err := staticbin.NewGinStaticBinMiddleware("/")
if err != nil {
return err
}
r.Use(binStaticMiddleware)
引用和代码仓库
dejavuzhou/felix Golang 工具集
felix ginbro 命令逻辑代码目录
前端代码二进制化成gin中间件代码
文章来源 MojoTech
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP and MySQL Web Development
Luke Welling、Laura Thomson / Sams / July 25, 2007 / $49.99
Book Description PHP and MySQL Web Development teaches you to develop dynamic, secure, commerical Web sites. Using the same accessible, popular teaching style of the three previous editions, this b......一起来看看 《PHP and MySQL Web Development》 这本书的介绍吧!