SQL+RESTful开源GO脚手架工具ginbro(gin and gorm's brother)

栏目: 数据库 · 发布时间: 7年前

内容简介:对于那些喜欢使用命令行的同学,你们可以选择使用web界面来操作默认用户名和密码都是

SQL+RESTful开源 <a href='https://www.codercto.com/topics/6127.html'>GO</a> 脚手架工具ginbro(gin and gorm's brother)

安装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 脚手架工具

工作原理

  1. 通过cobra 获取命令行参数
  2. 使用 sql 参数连接数据库
  3. 后去数据库表的名称和字段类型等数据库
  4. 数据库边的表名和字段信息,转换成 Swagger doc 规范 字段 和 GORM 模型字段
  5. 使用标准库 text/template 生成swagger.yaml, GORM 模型文件, GIN handler 文件 ...
  6. 使用 go fmt ./... 格式化代码
  7. 使用标准库 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

SQL+RESTful开源GO脚手架工具ginbro(gin and gorm's brother)

2.填写数据库连接信息

SQL+RESTful开源GO脚手架工具ginbro(gin and gorm's brother)

3.配置app用户认证的表和字段

SQL+RESTful开源GO脚手架工具ginbro(gin and gorm's brother)

4.配置app 包名称,导出目录和监听地址

SQL+RESTful开源GO脚手架工具ginbro(gin and gorm's brother)

5.生成go代码

SQL+RESTful开源GO脚手架工具ginbro(gin and gorm's brother)

6.下载代码或cd者到指定目录

SQL+RESTful开源GO脚手架工具ginbro(gin and gorm's brother)

功能二:前端代码二进化,通过gin中间件整合到API服务

工作原理

  1. 遍历编译好的前端代码目录
  2. 使用 archive/zip 写入到 bytes.buffer
  3. 格式化输出层 字符串常量的 go文件中
  4. 创建gin中间件,加载字符串处理,解析出文件
  5. 中间件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

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》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具