miyazi888の覚え書き日記

学習したことを書き留めてます。

echoのルーティング

echoのルーティングを試してみた。
と言ってもシンプルなので、特に迷うことはなかった。
実際にこれで何か作る時にはルーティング部分のみ、切り出して別関数化する感じになると思う。Railsで言うroute.rbの設定ファイルみたいな感じがイメージに近い。

プログラム

package main

import (
    "net/http"

    "github.com/labstack/echo"
)

func main() {
    e := echo.New()
    e.GET("/users", getUsers)
    e.POST("/user", createUser)
    e.PUT("/user/:id", updateUser)
    e.DELETE("/user/:id", deleteUser)
    e.Logger.Fatal(e.Start(":1111"))
}

func getUsers(c echo.Context) error {
    return c.String(http.StatusOK, "GET Method")
}

func createUser(c echo.Context) error {
    return c.String(http.StatusOK, "POST Method")
}

func updateUser(c echo.Context) error {
    return c.String(http.StatusOK, "PUT Method")
}

func deleteUser(c echo.Context) error {
    return c.String(http.StatusOK, "DELETE Method")
}

動作確認

go run main.goでサーバー起動後、別ターミナルを起動し、以下のコマンドで動作確認した。

curl localhost:1111/users   > GET Method
curl -X POST localhost:1111/user  > POST Method
curl -X PUT localhost:1111/user/1 > PUT Method
curl -X DELETE localhost:1111/user/1 > DELETE Method