Я хочу иметь возможность организовывать все свои маршруты по отдельным папкам и соответственно выполнять маршрут. Таким образом, это означает, что вместо того, чтобы все мои HandleFun c находились в одной области (и имели 50 маршрутов в одном файле), я могу перенаправить все мои «пользовательские» маршруты API в каталог пользователя, куда они будут направлены далее ». пользовательские функции, я мог бы перенаправить все свои API-маршруты 'messages' в каталог 'messages', где они в дальнейшем были бы перенаправлены на функциональность 'messages', например c. Так что, если кто-то перейдет на localhost: 5000 / api / маршруты / пользователь / getUser, я перенаправлю его на другой маршрутизатор в / api / routs / users, который затем перенаправит на GetUserHandler ().
То, что у меня сейчас есть
// main.go
package main
import (
"net/http"
"github.com/gorilla/mux"
)
func GetUserHandler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Got a user"))
}
func main() {
r := mux.NewRouter()
r.HandleFunc("api/routes/getUser", GetUserHandler)
http.ListenAndServe(":8000", r)
}
Что я пытаюсь сделать
// api/routes/user.go
import (
"net/http"
"github.com/gorilla/mux"
)
// somehow route /getUser to this function
func GetUserHandler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Got a user"))
}
// main.go
package main
import (
"net/http"
"github.com/gorilla/mux"
)
func main() {
r := mux.NewRouter()
// somehow route to to all my user functions
// the 'User' here is just an example to help illustrate my point
r.HandleFunc("api/routes/user", User)
http.ListenAndServe(":8000", r)
}