Go echo
go mod の作成
go mod というファイルでパッケージ管理(外部ライブラリの管理)を行う
go mod init プロジェクト名 go mod init $(basename `pwd`)
※basename pwd
でカレントディレクトリの取得
echo
軽量なWebフレームワーク
package main import ( "net/http" "github.com/labstack/echo" "github.com/labstack/echo/middleware" ) var e = createMux() func main() { e.GET("/", articleIndex) e.Logger.Fatal(e.Start(":8080")) } func createMux() *echo.Echo { // Echoのインスタンス作成 e := echo.New() // 各種ミドルウェアを設定 e.Use(middleware.Recover()) e.Use(middleware.Logger()) e.Use(middleware.Gzip()) return e } func articleIndex(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") }
var e = createMax()
Goプログラム(パッケージ)を実行した際は、依存パッケージの読み込み > グローバル定数 > グローバル変数 > init() > main() の順に実行(判定)されてく そのため、main()とinit()よりも先に上記のグローバル変数の部分が処理され、createMux()関数が呼び出される 上記のソースコードはmainパッケージのグローバル変数であるeにcreateMux()関数の戻り値を格納している箇所
パッケージの依存関係の管理
外部パッケージであるechoを利用するため、プログラムを起動する際にはechoのソースコードも必要 こうした外部パッケージを管理する手段として、Goではgo modコマンドが準備されている
go mod tidy
上記のコマンドは、ソースコードを検査して、どのような外部パッケージを利用しているのかを判定する ソースコード内で利用されている外部パッケージはgo.modとgo.sumというファイルに書き出される 直接的に利用しているパッケージはgo.modに間接的に利用しているパッケージはgo.sumに記載される go mod tidyコマンドで依存パッケージの書き出しが完了した後、外部パッケージのソースコードをPCにダウンロード(キャッシュ)する
go mod download
ダウンロードされた外部パッケージのソースコードは$HOME/go/pkg/modに配置される