Passer des arguments aux gestionnaires de routeurs dans Golang avec Gin
Lors du développement d'API RESTful dans Golang à l'aide du framework Web Gin, vous pouvez rencontrer le besoin pour transmettre des arguments à vos gestionnaires de route. Ceci est utile pour réutiliser des ressources, telles que des connexions à une base de données, entre des routes.
Il existe deux approches courantes pour transmettre des arguments aux gestionnaires de routes :
Voici un exemple utilisant une fermeture :
// 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") }
Dans ce scénario, la fonction SomeHandler crée une fermeture qui encapsule le gestionnaire de route réel. La fermeture capture la variable db, permettant au gestionnaire d'y accéder.
N'oubliez pas que cette technique peut être appliquée à tout type d'argument que vous devez transmettre à vos gestionnaires de route.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!