Gin入門編やってみた(Mac)

Ginとは

Go言語のWebFrameworkの一つです。

参考

エウレカさんのチュートリアルを途中まで再現してみました。 APIですこしつまづいているのでAPI実装は次回の記事で

Go言語製WAF GinでWebアプリを作ってみる【準備編】 | eureka tech blog

Goのインストール

$ brew install go

macでは一発でインストールできますがwindowsではすこし手間がかかりますが簡単にインストールできます。

goのバージョンを確認

$ go version
go version go1.6.2 darwin/amd64

Ginインストール

Goの触れる環境を作成したら次にGinをインストールしてみる。 まずはGOPATHとGOROOTの設定

export GOPATH="$HOME/repos/gohome"
export GOROOT="/usr/local/opt/go/libexec"
export GOBIN="$GOPATH/bin"
export PATH="$GOBIN:$GOROOT/bin:$PATH"

設定が反映されているか確認してみる

$ go env
GOARCH="amd64"
GOBIN="/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/home/code/golang"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

ここまでできたらGinをインストールしてみる

$ go get github.com/gin-gonic/gin

これでGinがインストールされます。

HelloWorld

ブラウザで確認してみる 1.まずは開発用のディレクトリを作成し main.goファイルを作成する。

package main
 
import (
    "github.com/gin-gonic/gin"
)
func main() {
    r := gin.Default()
 
    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello world")
    })
 
    r.GET("/hoge", func(c *gin.Context) {
        c.String(200, "fuga")
    })
    r.Run(":8080")
}

サーバー起動

$ go run main.go
[GIN-debug] GET    /                         --> main.main.func1 (3 handlers)
[GIN-debug] GET    /hoge                     --> main.main.func2 (3 handlers)
[GIN-debug] Listening and serving HTTP on :8080
[GIN] 2016/09/01 - 22:42:19 | 200 |      94.169µs | ::1 |   GET     /
[GIN] 2016/09/01 - 22:42:27 | 404 |       1.202µs | ::1 |   GET     /fuga
[GIN] 2016/09/01 - 22:42:38 | 200 |       6.408µs | ::1 |   GET     /hoge

localhost:8080にアクセスすると f:id:suga-tech3:20160904175557p:plain

localhost:8080/hogeでアクセスするとfugaがでてきます。

サーバにアクセスするごとにコマンドラインでGETリクエストがきていることがわかります。

次回はつまづいているAPIを実装してみようと思います。