mysql資料庫一行命令生成GIN+GORM RESTful APIs Golang應用
ofollow,noindex" target="_blank">一行命令根據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"
- cd 到生成的專案
- go build和run
-
訪問
http://127.0.0.1:5555/swagger
生成新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 stringmysql host:port (default "dev.mojotv.com:3306") -l, --appAddr stringapp listen Address eg:mojotv.cn, use domain will support gin-TLS (default "127.0.0.1:5555") -c, --charset stringdatabase charset (default "utf8") -d, --database stringdatabase name (default "dbname") -h, --helphelp for gen -o, --out stringgolang 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 stringdatabase password (default "Password") -u, --user stringdatabase 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快取
- [ ] 支援生成RPC/">gRPC服務
- [ ] 更詳細的gorm tag資訊
- [ ] json不現實password等隱私欄位
- [ ] swaggerDoc引數說明繼續優化
- [ ] 生成友好的.gitignore
- [ ] 完善go doc
注意
- mysql表中沒有id/ID/Id/iD欄位將不會生成路由和模型
- json欄位 在update/create的時候 必須使可以序列號的json字串,否則mysql會報錯