这只是一个粗略的例子,希望能为您指明方向。如您所见.Mount(),接受一个模式,然后接受一个.Router. 玩弄这两个并弄清楚你想如何构建它。
package main
import (
"github.com/go-chi/chi"
"net/http"
)
func main() {
r := chi.NewRouter()
r.Mount("/api", Versions())
http.ListenAndServe("localhost:8080", r)
}
func Versions() chi.Router {
r := chi.NewRouter()
r.Mount("/v1", V1())
// r.Mount("/v2", V2())
return r
}
func V1() chi.Router {
r := chi.NewRouter()
r.Mount("/user", User())
// r.Mount("/posts", Post())
return r
}
func User() chi.Router {
r := chi.NewRouter()
r.Route("/hello", func(r chi.Router){
r.Get("/", hello)
})
return r
}
func hello(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello"))
}
访问localhost:8080/api/v1/user/hello应导致“Hello”响应。