Golangフレームワーク【Echo】を使ってみた
目次
- ・| Goのフレームワーク【Echo】とは
- ・| その他のGoフレームワーク
- ・| 実際にサーバーを構築
- ・| Dockerの設定
- ・| Echoをインストール
- ・| EchoでHTTPサーバーを作成
- ・| 最後に
Goのフレームワーク【Echo】とは
EchoとはGo言語の数あるフレームワークの中でも軽量なフレームワークになります。
高機能かつ拡張性も高くとても人気の高いフレームワークとなります。
GitHub - labstack/echo: High performance, minimalist Go web framework
High performance, minimalist Go web framework. Contribute to labstack/echo development by creating an account on GitHub.
GitHub
その他のGoフレームワーク
- Gin
- Revel
- iris
実際にサーバーを構築
今回はサクっとお試しするためにDocker環境を構築してその上でEchoを動かしてみます。
下記が目標の構成です。
┣─ back
┃ └─ server.go
┣─ Dockerfile
┣─ go.mod
┣─ go.sum
└─ docker-compose.yml
Dockerの設定
まずはdocker-compose.ymlとDockerfileを用意しGoが動かせる環境を作ります。
version: '3'
services:
server:
build: ./back
tty: true
volumes:
- ./back:/go/src/work
FROM golang
RUN mkdir /go/src/work
WORKDIR /go/src/work
ADD . /go/src/work
Dockerfileが用意できたらDockerを起動します。
$ docker-compose build
$ docker-compose up -d
Dockerの起動が確認できたらGoが動くか確認します。
テスト用のファイルを作成します。(後で削除します。)
package main
import "fmt"
func main() {
fmt.Printf("テスト実行\n")
}
コンテナにアクセス
$ docker-compose exec server bash
作成したtest.goを実行し、結果が返って来ればOK!
$ go run test.go
# -> テスト実行
Echoをインストール
下記のコマンドを実行しgo.modを作成します。
$ go mod init echo-test
goの初期化が完了したらいよいよEchoをインストールしてみます。
$ go get github.com/labstack/echo/v4
上記コマンドで正常にインストールが完了するとgo.sumが作成され必要なパッケージが入ってることが確認できます。
EchoでHTTPサーバーを作成
簡単なレスポンスを返すメインファイルを作成します。
package main
import (
"net/http"
"github.com/labstack/echo/v4"
)
func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello World!")
})
e.Logger.Fatal(e.Start(":3000"))
}
最後にdocker側のポートを割り当てて、起動時にサーバーも起動するように変更します。
version: '3'
services:
server:
build: ./back
tty: true
volumes:
- ./back:/go/src/work
ports: # 追加
- 3000:3000 # 追加
command: go run server.go # 追加
一度コンテナから抜けて、Dockerを再起動
$ exit
$ docker-compose up
localhost:3000でアクセスしてレスポンスが返って来れば成功!
最後に
今回はGo言語のフレームワークEchoをインストールし、簡単なHTTPサーバーを作成しました。
超最小限の動作チェックになるので、次回はDBにアクセスしながらCLUDが行える状態を目指そうと思います!
最後までご覧いただきありがとうございます!