ゆーじぇいブログ

ゆーじぇいブログ

プログラミングとか色々

[Golang]echoフレームワークを試してみた!

f:id:jyouj:20181227164744p:plain

Go言語はフレームワークを使わずとも、ライブラリの機能が高いのでOKと聞いたのですが、せっかくなのでGoのフレームワークにもちょっと触ってみようかなと思い、評判の良さそうなechoを使ってみることにしました。

インストール

echoフレームワークを導入しようと思います。

$ go get -u github.com/labstack/echo

準備ができましたね。

実装

とりあえず書いていきます。echo-sample/server.goに書いていこうかと。

package main

import (
  "net/http"

  "github.com/labstack/echo"
)

func main() {
  e := echo.New()

  e.GET("/", func(c echo.Context) error {
    return c.String(http.StatusOK, "Hello, Go!")
  })

  e.Logger.Fatal(e.Start(":1323"))
}

http://localhost:1323にアクセスするとHello, Go!と表示されます!手っ取り早い!!

違うページとかにもできるかな?と思って、下のように追加してみます。

package main

import (
  "net/http"

  "github.com/labstack/echo"
)

func main() {
  e := echo.New()

  e.GET("/", func(c echo.Context) error {
    return c.String(http.StatusOK, "Hello, Go!")
  })

  // 追加
  e.GET("/next", func(c echo.Context) error {
    return c.String(http.StatusOK, "Next!")
  })

  e.Logger.Fatal(e.Start(":1323"))
}

http://localhost:1323/nextにちゃんとNext!って表示されました。

あれ?でもこれだとmain()が膨らみそうだなあ、と思ったので、切り分けます。

package main

import (
  "net/http"

  "github.com/labstack/echo"
)

func hello(c echo.Context) error {
  return c.String(http.StatusOK, "Hello, Go!")
}

func next(c echo.Context) error {
  return c.String(http.StatusOK, "Next!")
}

func main() {
  e := echo.New()

  e.GET("/", hello)

  e.GET("/next", next)

  e.Logger.Fatal(e.Start(":1323"))
}

おお、いい感じにできました!

調べてみるとAPI開発に使っている記事が多かったので、次はそっちの方をechoで作ってみようと思います。

何かあれば、じぇい👨‍💻 (@jyouj__) | Twitterに!