V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
not4jerk
V2EX  ›  Go 编程语言

ginbo 项目自动生成的代码(儿子)

  •  
  •   not4jerk ·
    mojocn · 2018-11-15 16:00:13 +08:00 · 2971 次点击
    这是一个创建于 2201 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一行命令根据 mysql 数据库生产 RESTful APIs APP

    Ginbo,GinBro,Gimbo,GimBro,Jimbo,GinOrm or GinGorm

    Feature

    • 自动生成完善的 swagger(postman)文档
    • 可以 server SPA 应用(比如 vuejs 全家桶)
    • 快速使用 golang+gin+gorm 改造依赖 mysql 项目

    ginbo 工具安装

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

    go get github.com/dejavuzhou/ginbo
    

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

    使用

    ginbo gen -u root -p PASSWORD -a "127.0.0.1:3306" -d dbname -o "github.com/mojocn/apiapp"

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

    C:\Users\zhouqing1\go\src\github.com\mojocn\apiapp>tree /f /a
    Folder PATH listing
    Volume serial number is 8452-D575
    C:.
    |   2018-11-15-app.log
    |   config.toml
    |   main.go
    |   readme.md
    |
    +---config
    |       viper.go
    |
    +---handlers
    |       gin.go
    |       handler_wp_litespeed_img_optm.go
    |       handler_wp_litespeed_optimizer.go
    |       handler_wp_posts.go
    |       handler_wp_users.go
    |       handler_wp_yoast_seo_links.go
    |
    +---models
    |       db.go
    |       model_wp_litespeed_img_optm.go
    |       model_wp_litespeed_optimizer.go
    |       model_wp_posts.go
    |       model_wp_users.go
    |       model_wp_yoast_seo_links.go
    |
    +---static
    |   |   .gitignore
    |   |   index.html
    |   |   readme.md
    |   |
    |   \---index_files
    |           jquery.js.download
    |           style.css
    |           syntax.css
    |
    \---swagger
            .gitignore
            doc.yml
            favicon-16x16.png
            favicon-32x32.png
            index.html
            oauth2-redirect.html
            readme.md
            swagger-ui-bundle.js
            swagger-ui-standalone-preset.js
            swagger-ui.css
            swagger-ui.js
    

    命令参数说明

    ginbo gen -h
    generate a RESTful APIs app with gin and gorm for gophers. For example:
            ginbo gen -u eric -p password -a "127.0.0.1:3306" -d "mydb"
    
    Usage:
      create gen [flags]
    
    Flags:
      -a, --address string    mysql host:port (default "dev.mojotv.com:3306")
      -l, --appAddr string    app listen Address eg:mojotv.cn, use domain will support gin-TLS (default "127.0.0.1:5555")
      -c, --charset string    database charset (default "utf8")
      -d, --database string   database name (default "dbname")
      -h, --help              help for gen
      -o, --out string        golang project package name of your output project. eg: github.com/awesome/my_project, the project will be created at $GOPATH/src/github.com/awesome/my_project (default "github.
    com/dejavuzhou/gin-project")
      -p, --password string   database password (default "Password")
      -u, --user string       database user name (default "root")
    

    环境

    • 我的开发环境
      • Windows 10 专业版 64 位
      • go version go1.11.1 windows/amd64
      • mysql 数据库 <= 5.7

    依赖

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

    开发计划

    • [ ] 支持 PostgreSQL 数据库
    • [ ] 支持一键生产 jwt 密码验证
    • [ ] 支持 MongoDB 数据库
    • [ ] 更具数据映射关联模型
    • [ ] 分页总数做 redis 缓存
    • [ ] 支持生成 gRPC 服务
    • [ ] 更详细的 gorm tag 信息
    • [ ] json 不现实 password 等隐私字段
    • [ ] swaggerDoc 参数说明继续优化
    • [ ] 生成友好的.gitignore
    • [ ] 完善 go doc

    注意

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

    致谢

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

    第 1 条附言  ·  2018-11-16 11:36:52 +08:00
    # 修改项目名称到 ginbro 使用文档详解[github.com/dejavuzhou/ginbro]( https://github.com/dejavuzhou/ginbro)
    3 条回复    2018-11-16 11:07:18 +08:00
    wenzhoou
        1
    wenzhoou  
       2018-11-15 20:48:47 +08:00 via Android
    觉得还是要顶一下回家慢慢看。
    bonfy
        2
    bonfy  
       2018-11-16 09:15:40 +08:00
    不考虑测试么?
    qloog
        3
    qloog  
       2018-11-16 11:07:18 +08:00
    看起来很强大的样子 :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2724 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:34 · PVG 19:34 · LAX 03:34 · JFK 06:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.