Ich habe versucht, eine JSON-Konfigurationsdatei einzurichten, um dynamische Routen für meine Anwendung einzurichten. Die Idee ist, dass ich in der Lage sein werde, meine eigene URL-Struktur einzurichten, abhängig davon, wer den Service benutzt. Ich habe eine Struktur, die JSON aufnimmt und das funktioniert gut. Ich benutze Gorilla Mux.Golang JSON-Konfiguration für Routen
Die JSON ist im Grunde identisch mit der Struktur und es geht in Ordnung.
Das Problem, das ich habe, ist die HandleFunc Abschnitt. Hier
ist der Code:
func NewRouter() *mux.Router {
routerInstance := mux.NewRouter().StrictSlash(true)
/*
All routes from the routing table
*/
// r = []CustomRoute with the JSON data
r := loadRoute()
for _, route := range r {
var handler http.Handler
handler = route.HandlerFunc
handler = core.Logger(handler, route.Name)
routerInstance.
Methods(route.Method).
Path(route.Path).
Name(route.Name).
Handler(handler)
}
return routerInstance
}
ich immer die folgende Fehlermeldung erhalten (wie man erwarten würde)
nicht verwenden können route.HandlerFunc (Typ string) als Typ http.Handler in Zuordnung : Zeichenfolge nicht implementiert http.Handler (fehlende ServeHTTP Methode)
mir gesagt wurde, wie etwas zu verwenden:
var functions = map[string]interface{}{
"HandleFunc1": HandleFunc1,
}
Aber ich habe keine Ahnung, wie diese Arbeit machen
Sie haben mich über die Linie Danke. Ich muss meine Karte zu ändern: var functions = map [string] http.HandlerFunc –
Ich dachte, etwas wäre aus. Wie ich schon sagte, meine war spezifisch für Subdomains, daher die Karte der Handler. Ich habe tatsächlich die erste Zeile in der Funktion geändert, indem ich die Subdomain nachgeschlagen habe, um den Pfad zu bekommen, so dass mein Code hier wahrscheinlich nicht einmal so funktioniert: O. Ich werde es bearbeiten, um handleFuncs zu verwenden – RayfenWindspear