De enige andere oplossing die ik heb gezien, bijvoorbeeld in "Context doorgeven aan interfacemethoden" is:
maak een struct
die een ingesloten context accepteert en onze handler
type, en we voldoen nog steeds aan de http.Handler
interface dankzij ServeHTTP
.
In jouw geval is de struct
zou de pool
bevatten , en de handler
functie.
type appContext struct {
pool Pool
}
type appHandler struct {
*appContext
h func(a *appContext, w http.ResponseWriter, r *http.Request) (int, error)
}
func (ah appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
...
}
func main() {
context := &appContext{
pool: ...,
// any other data
}
}