Go言語からGORMとECHOでJSONを返すAPIサーバー作ってみる。

GORMとECHOでMYSQLのデータからJSONを返すシンプルなAPIサーバー作ってみる。 ECHOはシンプルな構成でサーバーを構築できる印象、使いやすい。ひとまずDBから取得したデータをJSON化して返す事ができました。

echo.labstack.com

github.com

GORMの部分は前回作成したサンプルをAPIサーバー用にアレンジ。 onga-tec.hatenadiary.jp

ルーティングは以下のように指定できる。

func main() {
        fmt.Println("sever start")
        e := echo.New()
        u := userModel.User{}
        h := handler.CreateHandler(u)
        e.GET("/", status)
        e.GET("/user/:id", h.GetUser)
        e.POST("/user", h.CreateUser)
        e.DELETE("/user", h.DeleteUser)
        e.Run(standard.New(":3001"))
}

今回作成したサンプル、ところどころ修正が必要を感じる、、ここはおってベストプラクティスを探していこう。 gist.github.com

TEST

handler部分のtest

go test ./handler/ -v

model部分のtest

go test ./models/user/ -v

WEB

サーバー起動

go run app.go

以下のアドレスで確認できるはず。

http://127.0.0.1:3001/user/1

Goはtestが前提の設計がされているので、自然に無理なくtestを書く事ができるのは本当にいいところ、積極的にtestを書いていこう。

ちなみに、gopherって何の動物をモチーフにしているのだろうか、?きになる、、 f:id:loosefingers:20140321181137j:plain