前回まで
- blogのURLどうしようかなこれ
- [c#] オレオレblogのRouter
- [go] オレオレblogのRouter
というわけでGo版その2。ginが目的を果たせないようなので、次にメジャーなechoを試した。デファクトスタンダードだとしても、個人的に全部入り鈍重FWは大嫌いなので採用しないのだけど、ベンチマーク的にはechoの方が速いらしい。こっちに決まりかな!
echoだけ
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, "index")
})
e.GET("/:entry_code", func(c echo.Context) error {
return c.String(http.StatusOK, "entry"+c.Param("entry_code"))
})
e.GET("/page/:num", func(c echo.Context) error {
return c.String(http.StatusOK, "list"+c.Param("num"))
})
e.GET("/category/:category_code", func(c echo.Context) error {
return c.String(http.StatusOK, "category"+c.Param("category_code"))
})
e.GET("/category/:category_code/page/:num", func(c echo.Context) error {
return c.String(http.StatusOK, "category"+c.Param("category_code")+c.Param("num"))
})
e.Logger.Fatal(e.Start(":9009"))
}
あまり書くこともないのだけど、とりあえず目的は達した。"/"と"/:hoge"で挙動が違うところはASP.netともまた違うね。いろんなパス入れてreloadしてて思ったけど、中身は単純に/でsplitしてそうだよね。どのFWも。
ASP.netが超絶楽ちん、かつ個人的にc#より最高(環境とか含めて)な言語は無いと思ってるのだけど、goを勉強したいのでこれにしようかな。まー、趣味であれこれやっても、仕事でやるのと比較すると習熟度が全然違うんだけどね。