Gin 1.17에서는 데이터베이스 작업 전에 데이터 유효성 검사를 위해 구조 태그 유효성 검사를 사용하는 것이 간단합니다. 기본 오류 메시지는 장황하지만 더 명확한 사용자 피드백을 제공하기 위해 사용자 정의할 수 있습니다.
Gin은 github.com/go-playground/validator/v10 패키지를 사용하여 확인. 유효성 검사가 실패하면 validator.ValidationErrors 개체가 반환됩니다. 이 자세한 오류 메시지에는 검증에 실패한 각 필드에 대한 정보가 포함되어 있습니다.
사용자 정의된 오류 메시지를 얻으려면 다음을 수행할 수 있습니다.
다음은 유효성 검사 오류를 동적 필드 기반 오류가 포함된 JSON 응답으로 변환하는 구현입니다. 구조:
type ApiError struct { Field string Msg string } func HandleValidationErrors(c *gin.Context, err error) { var ve validator.ValidationErrors if errors.As(err, &ve) { out := make([]ApiError, len(ve)) for i, fe := range ve { out[i] = ApiError{fe.Field(), msgForTag(fe.Tag())} } c.JSON(http.StatusBadRequest, gin.H{"errors": out}) } } func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
핸들러 함수에서 HandleValidationErrors를 사용하여 유효성 검사 오류를 처리합니다.
func UserHandler(c *gin.Context) { var u User err := c.BindQuery(&u); if err != nil { HandleValidationErrors(c, err) return } // ... }
위 내용은 구조체 태그를 사용하여 Gin 1.17에서 유효성 검사 오류 메시지를 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!