Skip to content
This repository has been archived by the owner on Jul 26, 2019. It is now read-only.

Latest commit

 

History

History
154 lines (141 loc) · 5.93 KB

readme_zh.md

File metadata and controls

154 lines (141 loc) · 5.93 KB

Build Status GoDoc Go Report Card stability-stable codebeat badge codecov

一个命令行工具:快速生成go语言RESTful APIs应用

文档和DEMO

Feature

ginbro工具安装

您可以通过如下的方式安装 ginbro 工具:

go get github.com/dejavuzhou/ginbro

安装完之后,ginbro 可执行文件默认存放在 $GOPATH/bin 里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中,才可以进行下一步。 如何添加环境变量,请自行搜索 如果你本机设置了GOBIN,那么上面的命令就会安装到 GOBIN下,请添加GOBIN到你的环境变量中

如果没有配置GOBIN到环境变量,执行下面命令

cd $GOPATH/src/github.com/dejavuzhou/ginbro
go build
./ginbro -h

使用

ginbro gen -u root -p ginbro -c utf8 -a 127.0.0.1:3306 --authTable=users --authPassword=password --outPackage=github.com/dejavuzhou/ginbro_demo -d=ginbro

生成新project目录树 ginbro-son DEMO代码

C:\Users\zhouqing1\go\src\github.com\mojocn\apiapp>tree /f /a
|   config.toml
|   main.go
|   readme.md
|
+---config
|       viper.go
+---handlers
|       gin.go
|       handler_wp_posts.go
|       handler_wp_users.go
|
+---models
|       db.go
|       model_wp_posts.go
|       model_wp_users.go
|
+---static
|   |   .gitignore
|   |   index.html
|   |   readme.md
|   |
|   \---index_files
|           style.css
|           syntax.css
|
\---swagger
        .gitignore
        doc.yml
        favicon-16x16.png
        favicon-32x32.png
        index.html
        oauth2-redirect.html
        readme.md

命令参数说明

ginbro gen -h
generate a RESTful APIs app with gin and gorm for gophers. For example:
        ginbro gen -u eric -p password -a "127.0.0.1:3306" -d "mydb"

Usage:
  create gen [flags]

Flags:
  -a, --Mysql IP PORT    mysql host:port (default "dev.mojotv.com:3306")
  -l, --应用地址端口    app listen Address eg:mojotv.cn, use domain will support gin-TLS (default "127.0.0.1:5555")
  -c, --数据库字符集    database charset (default "utf8")
  -d, --数据库名称   database name (default "dbname")
  -h, --help              help for gen
  -o, --输出地址      输出地址相对于$GOPATH/src
  -p, --数据库密码   database password (default "Password")
  -u, --数据库用户     database user name (default "root")
  --authTable 登陆用户表名  default users
  --authPassword 登陆用户密码字段 default password

依赖 go packages

go get github.com/gin-contrib/cors
go get github.com/gin-contrib/static
go get github.com/gin-gonic/autotls
go get github.com/gin-gonic/gin
go get github.com/sirupsen/logrus
go get github.com/spf13/viper
go get github.com/spf13/cobra
go get github.com/go-redis/redis
go get github.com/go-sql-driver/mysql
go get github.com/jinzhu/gorm
go get github.com/dgrijalva/jwt-go

开发计划

  • Auth 和 JWT middleware
  • 支持一键生产jwt密码验证
  • 分页总数做mem缓存
  • json不现实password等隐私字段
  • 生成友好的.gitignore
  • go test 单元测试
  • 完善go doc
  • 支持MongoDB数据库
  • 更具体数据映射关联模型
  • 支持PostgreSQL数据库
  • 支持生成gRPC服务
  • 更详细的gorm tag信息
  • swaggerDoc参数说明继续优化
  • 支持其他语言框架(php-laravel/lumne ,python flask ...)
  • sqlite

注意

  • mysql表中没有id/ID/Id/iD字段将不会生成路由和模型
  • json字段 在update/create的时候 必须使可以序列号的json字符串(eg0:"{}" eg1:"[]"),否则mysql会报错

致谢

请各位大神不要吝惜提issue同时附上数据库表结构文件