Gin을 사용하여 Golang의 라우터 핸들러에 인수 전달
Gin 웹 프레임워크를 사용하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!