Я использую Go с Gorilla Mux для разработки API, и я разбил код на «маршруты», «обработчики» и другие файлы. У меня есть определенные предопределенные пути API, определенные в файле «маршрутов», чьи функции-обработчики были записаны в файле «обработчиков». Тем не менее, я хочу написать своего рода функцию по умолчанию, которая вызывается каждый раз, когда я вызываю путь, который не был предопределен .ie независимо от шаблона / пути. Может кто-нибудь подсказать, как добиться того же с нижеприведенной структурой?
маршруты. go:
type Route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
}
type Routes []Route
type App struct {
Router *mux.Router
Database *sql.DB
}
var Appl App
func NewRouter() {
var patterns []string
Appl.Router = mux.NewRouter()
for _, route := range routes {
Appl.Router.
Methods(route.Method).
Path(route.Pattern).
Name(route.Name).
Handler(route.HandlerFunc)
}
}
var routes = Routes{
Route{
"Index",
"GET",
"/",
index,
},
Route{
"TodoIndex",
"GET",
"/todos",
todoIndex,
},
}
обработчики. go: (Функции todoIndex и index)
main. go:
NewRouter()
log.Fatal(http.ListenAndServe(":8080", Appl.Router))