Go 제네릭 ใน 진 핸들러
7223 단어 go
วัน วัน วัน ก็ นี้ ลอง ใช้ ใช้ ใช้ มา มา ใน การ การ สร้าง สร้าง GIN HandlerFunc เพื่อ ให้ เรา สามารถ เขียน handler ได้ ง่าย ขึ้น ด้วย ด้วย หน้าตา ประมาณ นี้ นี้
func Handler(request) (response,error)
ประโยชน ์ก็คือ มจะช่วยให้ เราเขียน เทสให้ 핸들러 ง่ายขึ้น โดยไม่ต้อ Context mock gin.
โดยเราจะวางโครง สร้าง โปรเจ็คเราแบบนี้
กไหน
type CustomerRequest struct {
Name string `json:"name"`
}
type CustomerResponse struct {
Name string `json:"name"`
}
func CustomerHandler(request CustomerRequest) (CustomerResponse, error) {
fmt.Println("CustomerHandler", request)
return CustomerResponse{Name: request.Name}, nil
}
func New() gin.HandlerFunc {
return ginhandlerfunc.NewBindRequestOKResponse(CustomerHandler)
}
ซึ่งเมื่อได้ 코드 หน้าตาแบบนี้แล้ว เวลาเราจะเขียน 비즈니스 로직 กเขียน แค่๔ดเดเดยน 비즈니스 로직
ginhandlerfunc.NewBindRequestOKResponse에서 ทีนี้ เราลองมาดูใ에서 กันว่ามีวิธีเขียนอย่างไร
func NewBindRequestOKResponse[Request, Response any](handler func(Request) (Response, error)) gin.HandlerFunc {
return func(c *gin.Context) {
var request Request
if err := c.ShouldBindJSON(&request); err != nil {
c.AbortWithError(http.StatusBadRequest, err)
return
}
response, err := handler(request)
if err != nil {
c.AbortWithError(http.StatusInternalServerError, err)
return
}
c.JSON(http.StatusOK, response)
}
}
นี่ นี่ นี่ คือ ก็ ของ มัน มัน เรา เรา ใช้ ใช้ ใช้ เข้า เข้า มา ช่วย ช่วย ใน ใน ส่วน การ ประกาศ 요청 และ 응답 และ ให้ ซึ่ง วิธี นี้ จะ ทำ ทำ ไม่ ได้ ได้ หาก ไม่ การ ใช้ ใช้ ใช้ มา ช่วย ช่วย ช่วย ช่วย ช่วย ช่วย
และสามารถไปดู ตัวอย่าง ที่มากกว่านี้ได้ที่ https://github.com/pallat/generic_gin_handler
ซึ่ง ซึ่ง ซึ่ง มี จะ ของ ของ handler ที่ รับ รับ รับ 매개 변수 ผ่าน uri param และ การ การ สร้าง handler struct มา เป็น handler ของ เรา ใน ที่ ต้อง มี มี 의존성 อื่น ๆ ๆ ๆ
นี่ นี่ เพียง เพียง เป็น โค้ด ตัวอย่าง เบื้อง เบื้อง ต้น หวัง หวัง ว่า จะ จะ เป็น ประโยชน์ ไม่ ไม่ ว่า จะ นำ นำ ไป ใช้ หรือ สร้าง แรง แรง บันดาลใจ ให้ เขียน ท่า อื่น อื่น ๆ ที่ เหมาะสม กับ กับ สไตล์ ของ ตัว เอง นะ นะ นะ นะ นะ นะ นะ นะ
Reference
이 문제에 관하여(Go 제네릭 ใน 진 핸들러), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pallat/go-generics-ain-gin-handler-f4b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)