я использую Gorilla Mux для написания REST API и я у меня возникают проблемы организации своих маршрутов, в настоящее время все мои маршруты определены в main.go
файле, как этотКак организовать маршруты мультика гориллы?
//main.go
package main
import (
"NovAPI/routes"
"fmt"
"github.com/gorilla/mux"
"net/http"
)
func main() {
router := mux.NewRouter().StrictSlash(true)
router.HandleFunc("/hello", func(res http.ResponseWriter, req *http.Request) {
fmt.Fprintln(res, "Hello")
})
router.HandleFunc("/user", func(res http.ResponseWriter, req *http.Request) {
fmt.Fprintln(res, "User")
})
router.HandleFunc("/route2", func(res http.ResponseWriter, req *http.Request) {
fmt.Fprintln(res, "Route2")
})
router.HandleFunc("/route3", func(res http.ResponseWriter, req *http.Request) {
fmt.Fprintln(res, "Route3")
})
// route declarations continue like this
http.ListenAndServe(":1128", router)
}
так, что я хочу сделать, это вынуть и разделите это объявление маршрута на несколько файлов, как бы я это сделал? заранее.
Я сделал это для простоты, но мои обработчики на самом деле определены в пакете маршрутов, поэтому мне все равно нужно отбирать маршруты из основной функции. – zola
. Я не понимаю: так или иначе вы все еще собираюсь писать ваши маршруты где-то ... Если ваш «главный» слишком длинный, возможно, вы можете написать помощник «NewRouter», который инициализирует его для вас. – Elwinar
Другим решением будет иметь функцию инициализации в вашем маршрутном пакете, которая принимает маршрутизатор в качестве входных данных и добавляет маршруты по своему усмотрению. Но я настоятельно советую. – Elwinar