万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

gin-scaffoldの使い方

Go言語WebフレームワークGinのスキャフォルディングがない。

Gin Scaffold

https://github.com/dcu/gin-scaffold

これの使い方

インストールする。

go get github.com/dcu/gin-scaffold

git-scaffold init プロジェクト名 でプロジェクト生成。 僕は~/bin/の下にあるので・・。

~/bin/gin-scaffold init scatest

中身はこうなってた。

> ls scatest
config      controllers helpers     models      scatest.go

起動するのはscatest.goだ。

go run scatest.go

そのままでは、パスがフルパスだったので

import(
 //"/Users/shinriyo/scatest/controllers"
 "scatest/controllers"

を修正した。 デフォルトでは、4000番ポートでアクセス。 http://localhost:4000/にアクセスする。

他のフレームワークとかぶったりするので、 変えたい時はscatest.goport = "4001"を変える。

scaffoldを使う時

準備

github.com/Sirupsen/logrus

これはだめ。Userは大文字開始

~/bin/gin-scaffold scaffold user name:int
controllers/users.go:6:2: cannot find package "models" in any of:
    /usr/local/opt/go/libexec/src/models (from $GOROOT)
    /Users/shinriyo/src/models (from $GOPATH)

horie1024.hatenablog.com

さもなくばエラー。

~/bin/gin-scaffold scaffold User name:int

models/user.goがおかしい。

// User is a model
type User struct {
     ID bson.ObjectId  `bson:"_id,omitempty"`
     // name int `bson:"name"`
     name string `bson:"name"`
     CreatedAt int64 `bson:"created_at"`
     UpdatedAt int64 `bson:"updated_at"`
     Errors helpers.Errors `bson:"-"`
}

intではなくてstringに。

MongoDBを入れる

この辺を見て起動しておく

qiita.com

アクセス

http://localhost:4000/users

{"count":0,"items":[],"success":true}