Golang の chi でルーティングをまとめる:Route を使ってコードを整理しよう

Go の chi は Route を使うと共通の URL をまとめられる。

r.Route(“/user/{user}”, func(r chi.Router) {
r.Get(“/”, UserHome)
r.Get(“/posts”, UserPosts)
})

上のコードは

/user/abc/

という URL に対して UserHome という関数を表示して

/user/abc/posts

という URL に対して UserPosts という関数を表示する。コードの全体は下のようになる。

func main() {
r := chi.NewRouter()

r.Route(“/user/{user}”, func(r chi.Router) {
r.Get(“/”, UserHome)
r.Get(“/posts”, UserPosts)
})

r.NotFound(NotFound)

_ = http.ListenAndServe(“:8080”, r)
}

もちろん Route を使わなくてもルーティングはできる。その場合は r.Get(…, …) というコードが続くことになる。