Ginの実行環境作成


最近、Googleで調べものしているときやSNSでよく目にするGoですが、どうやらWebフレームワークも存在しており、標準ライブラリとはどう違うのかをみるべく、まずはフレームワークの一つであるGinのパッケージをインストールしてみようと思います。

Ginとは

Ginは、Go言語で記述されたWebフレームワークです。httprouterのおかげで最大40倍高速なパフォーマンスを備えたMartiniのようなAPIを備えています。パフォーマンスと優れた生産性が必要な場合は、Ginを気に入るはずです。
引用:Gin公式GitHub

作業環境

OS:Windows10 Home
プロセッサ:Intel(R) Core(TM) i5-3210M CPU2.50 GHz
RAM:8.00 GB (7.88 GB 使用可能)

Go:1.16.7 windows/amd64

Ginのインストール

Gin公式GitHubのREADMEに書いている通りに実行していこうと思います。
まずは以下のコマンドを実行してGinのパッケージを取得。エラー等が出なければこれでインストールは完了です。

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

つぎにインポートに関してですが、文頭のimport部分に以下のように記述するようです。

import "github.com/gin-gonic/gin"

簡単なコードの実行

ディレクトリ構成
GOPATH/
 ├ bin/
 │ └ 省略
 ├ pkg/
 │ └ 省略
 │   
 └ src/
   └ test/
     └ main.go

公式のコードを少々改変したものを実行してみます。

src/test/main.go
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "Hello World!",
        })
    })
    r.Run()
}

go runで実行。

src/test
go run main.go

するとエラーが出ました。

src/test
src\test\main.go:3:8: no required module provides package github.com/gin-gonic/gin: go.mod file not found in current directory or any parent directory; see 'go help modules'

調べたところ、下記のコマンドを作業しているディレクトリで実行すると解決しました。

src/test
go mod init
go get -u github.com/gin-gonic/gin

そのまま作業ディレクトリで再度go runを実行。

src/test
go run main.go

実行すると以下のようにデバッグログが出ると思います。

src/test
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /                         --> main.main.func1 (3 handlers)
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080

ポートは8080で待機してるようなのでブラウザからhttp://localhost:8080にアクセスします。

上記のように表示出来たら成功です。サーバーを落とすときはコマンドラインでCtrl+Cとすると終了できます。