[go] オレオレblogのRouter’

前回まで

  1. blogのURLどうしようかなこれ
  2. [c#] オレオレblogのRouter
  3. [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を勉強したいのでこれにしようかな。まー、趣味であれこれやっても、仕事でやるのと比較すると習熟度が全然違うんだけどね。