使用Gin 將參數傳遞給Golang 中的路由器處理程序
使用Gin Web 框架在Golang 中開發RESTful API 時,您可能會遇到以下需求將參數傳遞給您的路由處理程序。這對於跨路由重複使用資源(例如資料庫連線)非常有用。
將參數傳遞給路由處理程序有兩種常見方法:
這是使用閉包的範例:
// 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") }
在這種情況下, SomeHandler 函數建立一個包裝實際路由處理程序的閉包。閉包捕獲 db 變量,允許處理程序存取它。
請記住,此技術可以應用於您需要傳遞給路由處理程序的任何類型的參數。
以上是如何在 Golang 中將參數傳遞給 Gin 路由器處理程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!