Ich verwende Go in HTTP-Server und pat gebaut ist auf einige URLs reagieren:in Parameter an eine http.HandlerFunc Passing
mux.Get("/products", http.HandlerFunc(index))
func index(w http.ResponseWriter, r *http.Request) {
// Do something.
}
ich in einem zusätzlichen Parameter an diese Handler-Funktion übergeben müssen - eine Schnittstelle.
func (api Api) Attach(resourceManager interface{}, route string) {
// Apply typical REST actions to Mux.
// ie: Product - to /products
mux.Get(route, http.HandlerFunc(index(resourceManager)))
// ie: Product ID: 1 - to /products/1
mux.Get(route+"/:id", http.HandlerFunc(show(resourceManager)))
}
func index(w http.ResponseWriter, r *http.Request, resourceManager interface{}) {
managerType := string(reflect.TypeOf(resourceManager).String())
w.Write([]byte(fmt.Sprintf("%v", managerType)))
}
func show(w http.ResponseWriter, r *http.Request, resourceManager interface{}) {
managerType := string(reflect.TypeOf(resourceManager).String())
w.Write([]byte(fmt.Sprintf("%v", managerType)))
}
Wie kann ich einen zusätzlichen Parameter an die Handler-Funktion senden?
Große Köpfe denken gleich! Ich lösche meine Antwort. :) – sergserg
Hehe, ja, ich sah, dass du den __exact__ gleichen Code in deiner eigenen Schlussfolgerung hast. – ANisus
Eine alternative Signatur: 'func index (rm interface {}) http.HandlerFunc {return func (w http.ResponseWriter, r * http.Request) {...}}' – elithrar