mysql資料庫一行命令生成GIN+GORM RESTful APIs Golang應用
MySQL資料庫生成RESTful APIs APP
ginbro,GinBro,Gimbo,GimBro,Jimbo,GinOrm or GinGorm
Feature
- 自動生成完善的swagger(postman)文件
- 可以serve SPA應用(比如vuejs全家桶)
- 快速使用golang+gin+gorm改造依賴mysql專案
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 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目錄樹 ginbro-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
命令引數說明
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, --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 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
開發計劃
- [x] Auth 和 JWT middleware
- [ ] 支援PostgreSQL資料庫
- [x] 支援一鍵生產jwt密碼驗證
- [ ] 支援MongoDB資料庫
- [ ] 更具體資料對映關聯模型
- [x] 分頁總數做mem快取
- [ ] 支援生成gRPC服務
- [ ] 更詳細的gorm tag資訊
- [x] json不現實password等隱私欄位
- [ ] swaggerDoc引數說明繼續優化
- [x] 生成友好的.gitignore
- [ ] 完善go doc
- [ ] 支援其他語言框架(php-laravel/lumne ,python flask ...)
注意
- mysql表中沒有id/ID/Id/iD欄位將不會生成路由和模型
- json欄位 在update/create的時候 必須使可以序列號的json字串(
eg0:"{}" eg1:"[]"
),否則mysql會報錯
致謝
請各位大神不要吝惜提issue
同時附上資料庫表結構檔案
相關文章
- golang常用庫:cli命令列/應用程式生成工具-cobra使用Golang命令列
- 使用 Hapi 開發 RESTful APIsAPIREST
- Mysql資料庫操作命令MySql資料庫
- Mysql 常用資料庫命令MySql資料庫
- Golang 將資料庫轉換為gorm結構和RESTful apiGolang資料庫ORMRESTAPI
- 程式碼生成器,自適應mysql、oracle資料庫MySqlOracle資料庫
- golang實現mysql資料庫備份GolangMySql資料庫
- MySQL資料庫反向生成powerdesigner模型MySql資料庫模型
- MySQL 資料庫生成 10000 條測試資料MySql資料庫
- mysql資料庫備份命令大全MySql資料庫
- Mysql資料庫基礎操作命令MySql資料庫
- MySQL 資料庫 ALTER命令講解MySql資料庫
- mysql資料庫語句自動生成MySql資料庫
- mysql 資料庫常用命令大全MySql資料庫
- MySQL資料庫自動補全命令MySql資料庫
- 【Golang+mysql】記一次mysql資料庫遷移(一)GolangMySql資料庫
- 應用適配資料庫還是資料庫適配應用資料庫
- Restful 應用理解REST
- 應用端連線MySQL資料庫報Communications link failureMySql資料庫AI
- MySQL資料庫binlog解析神器-binlog2sql應用MySql資料庫
- 資料庫篇-mysql詳解( 一 )之基礎應用資料庫MySql
- mysql資料庫常用命令(補充)MySql資料庫
- Golang原生sql操作Mysql資料庫增刪改查GolangMySql資料庫
- oracle資料庫資料字典應用Oracle資料庫
- Golang 開源庫分享:faker - 隨機生成有趣的假資料!Golang隨機
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 3.07 EOS資料庫應用資料庫
- thinkphp6 使用自定義命令,生成資料庫檢視PHP資料庫
- 實用!一鍵生成資料庫文件,堪稱資料庫界的Swagger資料庫Swagger
- 資料庫 MySQL8.0+常用命令及操作命令詳解資料庫MySql
- 埋在 MYSQL 資料庫應用中的17個關鍵問題!MySql資料庫
- 資料庫大型應用——筆記2 50道mysql練習題資料庫筆記MySql
- navicat生成mysql資料字典MySql
- MySQL命令檢視資料庫和表容量大小MySql資料庫
- Linux檢視MYSQL資料庫容量大小命令LinuxMySql資料庫
- 基於gin的golang web開發:訪問mysql資料庫GolangWebMySql資料庫
- 1.4 資料庫和常用SQL語句(正文)——MySQL資料庫命令和SQL語句資料庫MySql
- 資料庫在資料分析中如何應用資料庫