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

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

内容简介:对于那些喜欢使用命令行的同学,你们可以选择使用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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

TCP/IP网络管理

TCP/IP网络管理

亨特 / 电子工业 / 2006年3月1日 / 79.00元

本书是一本架设与维护TCP/IP网络的完整指南,无论你是在职的系统管理员,还是需要访问Internet的家用系统用户,都可从本书获得帮助。本书还讨论了高级路由协议(RIPv2、OSPF、BGP),以及实现这些协议的gated软件。对于各种重要的网络服务,如DNS,Apache,sendmail,Samba,PPP和DHCP,本书都提供了配置范例,以及相关的软件包与工具的语法参考。一起来看看 《TCP/IP网络管理》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器