Übergabe von Argumenten an Router-Handler in Golang mit Gin
Bei der Entwicklung von RESTful-APIs in Golang mithilfe des Gin-Webframeworks kann es sein, dass Sie auf die Notwendigkeit stoßen um Argumente an Ihre Routenhandler zu übergeben. Dies ist nützlich, um Ressourcen wie Datenbankverbindungen über Routen hinweg wiederzuverwenden.
Es gibt zwei gängige Ansätze zum Übergeben von Argumenten an Routenhandler:
Hier ist ein Beispiel für die Verwendung eines Abschlusses:
// SomeHandler returns a `func(*gin.Context)` to satisfy Gin's router methods // db is an example argument that you want to pass down to the handler func SomeHandler(db *sql.DB) gin.HandlerFunc { fn := func(c *gin.Context) { // Your handler code goes in here // You now have access to the db variable // Example request handling rows, err := db.Query(...) c.String(200, results) } return gin.HandlerFunc(fn) } func main() { db, err := sql.Open(...) // Handle error router := gin.Default() router.GET("/test", SomeHandler(db)) router.Run(":8080") }
In diesem Szenario Die SomeHandler-Funktion erstellt einen Abschluss, der den eigentlichen Routenhandler umschließt. Der Abschluss erfasst die Datenbankvariable und ermöglicht dem Handler den Zugriff darauf.
Denken Sie daran, dass diese Technik auf jede Art von Argument angewendet werden kann, die Sie an Ihre Routenhandler übergeben müssen.
Das obige ist der detaillierte Inhalt vonWie übergebe ich Argumente an Gin-Router-Handler in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!