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