VOYAGE GROUPのサマーインターン「Treasure」のアドベントカレンダー17日目の記事.
遅れてごめんなさい.
目的
Goのwebフレームワークの一つであるEchoを使って簡単なwebサーバーをさくっと生やす
なんでEcho?
Goのwebフレームワークはたくさんある. ginとかbeegoとか...
そんな中Echoを選んだ理由は
- 公式のドキュメントがすごい丁寧でわかりやすかった
- 軽量で処理が高速 (らしい)
- 書き方がわかりやすかった
という感じ. 他のフレームワークにももちろん良いところはあるのだろうが, とっつきやすさを感じたのでEchoを使うことにした.
実践
サーバーの起動
Echoでwebサーバーを起動させるのは超簡単
package main
import "github.com/labstack/echo/v4"
func main() {
e := echo.New()
e.Start(":1991")
}
これでmain.goを実行すると以下のようにwebサーバーが立ち上がる.
APIの実装
それではAPIを作っていく. 今回は/hello
にGETリクエスト
を送ったらHello World
という文字列がレスポンスとして返ってくるような簡単なAPIを作る.
main.goに数行追加する.
package main
import (
"net/http"
"github.com/labstack/echo/v4"
)
func main() {
e := echo.New()
// 追加部分
e.GET("/hello", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello World")
})
e.Start(":1991")
}
今回はリクエストに対してDBの操作などをしないので, ルーティングの部分でレスポンスを返しているが, もちろん関数に切り出せる.
それではリクエストを実際に飛ばしてレスポンスが返ってくるか確認しよう. まずはmain.goを実行し, 別のターミナル上で以下のコマンド叩く.
curl http//localhost:1991/hello
まとめ
書いてから気づいたがechoの公式ドキュメントのQuick Startとやってることが99%一緒だった. 今回は簡単な事しかやらなかったがEchoは色々とカスタマイズができる. ログの表示の仕方とかも自分でいじれたりルーティングのグループ化ができたり... 時間ができたらそういったこともアウトプットしていきたい.