mysql一行コマンド生成GIN+GORM RESTfulアプリケーション


1行のコマンド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
  • 新規プロジェクトディレクトリツリー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

    開発計画
  • []PostgreSQLデータベース
  • をサポート
  • []ワンタッチ生産jwtパスワード検証
  • をサポート
  • []MongoDBデータベース
  • をサポート
  • []データマッピング関連モデル
  • []ページング総数redisキャッシュ
  • []は、gRPCサービス
  • の生成をサポートする.
  • []より詳細なgorm tag情報
  • []json非現実passwordなどのプライバシーフィールド
  • []swaggerDocパラメータ説明
  • の最適化継続
  • []は友好的なものを生成する.gitignore
  • []go doc
  • を完備
  • []他の言語フレームワーク(php-laravel/lumne,python flask...)をサポート

  • に注意
  • mysqlテーブルにid/ID/Id/iDフィールドがないとルーティングおよびモデル
  • は生成されません.
  • jsonフィールドupdate/createの場合、シリアル番号可能なjson文字列(eg0:"{}" eg1:"[]")を使用する必要があります.そうしないとmysqlは
  • をエラーします.
    お礼を言う
  • gin-gonic/ginフレーム
  • GORMデータベースORM
  • viperプロファイル読み出し
  • cobraコマンドラインツール
  • 私のもう一つのgo画像検証コードオープンソースプロジェクト
  • issue同時にデータベーステーブル構造ファイルを添付することを惜しまないでください