こんにちは、Coroccuです!
少し前の記事でご紹介したのですが、
Golang(Go言語)の学習を始めています。
なんとなく基礎は分かってきたので、
Webアプリでも作ろうかと思い、
GolangのフレームワークであるEchoを使って、
開発環境を作りました!
なので、その開発環境のご説明と
ソースコードをご提供しようかなと思います。
同じようにGolang&Echoを
勉強される方の参考になれば幸いです!
【サクッと簡単に!】DockerのGolang環境にEcho をインストール【ホットリロードにも対応!】
Echoとは?
「Echo」は、
Golangの軽量なWebフレームワークの1つです。
もう一つ「Gin」というGolang初期の頃からある
フレムワークの採用も考えたのですが、
Echoが「Gin」を参考にしているのと、
Echoの方が新しく、拡張性も高い、かつ
RESTAPIの原則に従っているという理由で
今回は「Echo」を選択しました。
Golang&EchoでAPIサーバ(バックエンド)を作ろうと
今のところ考えているので、RESTチックな方がいいかなぁと。
Golang&Echoの開発環境(Docker)の作り方
ソースコードは私のGitHubリポジトリに置きました。
Dockerfileとdocker-compose.ymlでは、
Golang(Ver. 1.14.2)のDockerイメージを
ダウンロードしてきて、
GolangのMODULE機能をオン、
MODULEを初期化し、
Airというライブラリをインストールしています。
※Airはソースコードを変更すると
自動でサーバに変更を反映してくれる(ホットリロード)。
あとは、そこに自分のパソコンのフォルダをマウントして、
ポート番号1323で待ち受けているってだけです。
たった、これだけでパソコンにて
Golang&Echoのコードを書き、
実行、ブラウザで確認まで、できちゃいます!
docker-compose.ymlのあるフォルダに移動して、
以下をターミナルなどで実行すると、
Golangのコンテナ環境に入ることができます。
そして、airコマンドを実行すれば、Hellow World!!!を
返す、サーバの出来上がり〜、いやー早くて便利。
- docker-compose up -d
- docker exec -it go-echo-app bash
- air -c work/.air.toml
- ブラウザで、http://localhost:1323/ にアクセス!
→Hellow World!!!がブラウザに出るので確認しましょう!
Golang&Echoのソースコードの説明(Hello World!)
HTTPリクエストを扱うため、
importで”net/http”を読み込んでいます。
また、”github.com/labstack/echo/v4″を読み込んでおくことで、
プログラム実行時にEchoをダウンロードしてきてくれます。
package main
import (
"net/http"
// Import Echo v4.
"github.com/labstack/echo/v4"
)
func main() {
// Create an Echo instance.
e := echo.New()
// Set Route to helloWorld.
e.GET("/", helloWorld)
// Start an Echo server.
e.Logger.Fatal(e.Start(":1323"))
}
// Handler
func helloWorld(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!!!")
}
echo.New()でEchoのインスタンスを作っています。
これでEchoが使えるように、初期化した感じです。
次に、e.GET(“/”, helloWorld)で、
Echoインスタンスに対して、”/“つまり、
以下(ルート)にアクセスがきたら、
http://localhost:1323/
helloWorld関数(func)を呼んでね!とお願いしています。
そして、e.Logger.Fatal(e.Start(“:1323”))
でEchoのサーバを起動して、
エラー等が起きたらログに出力するようにしてます。
func helloWorldでは、Hello, World!!!と
アクセスの成功(StatusOK=200OKというやつ)を
返すように書いているだけですね。簡単!
まとめ
ここまで読んで頂き、
ありがとうございました!
今回はDockerでGolang&Echoを実行できる環境を作り、
Webブラウザで「Hello, World!」と表示するプログラムを
実行するまで、をご説明しました。
Golang&Echoの勉強を始められる方の参考、
第一歩になれば嬉しいです!
また、私も勉強が進んできたら、
他にもGolang関連の記事を書くかもしれません。
その際は、ぜひご覧ください!
ではでは〜!
コメント