Gin에서 구조체 태그 유효성 검사를 위한 사용자 정의 오류 메시지 형식
Gin에서 구조체 유효성 검사를 수행할 때 반환되는 기본 오류 메시지는 장황하고 부족합니다. 사용자 친화성. 이 기사에서는 오류 메시지를 사용자 정의하고 보다 관리하기 쉬운 형식으로 표시하는 솔루션을 제공합니다.
Gin은 go-playground/validator/v10 패키지를 사용하여 구조체 태그를 통해 유효성 검사를 설정합니다. 유효성 검사가 실패하면 반환되는 오류는 validator.ValidationErrors 유형입니다. 특정 오류 정보를 추출하려면 표준 오류 패키지를 활용할 수 있습니다.
다음과 같이 사용자 정의 오류 모델을 가정합니다.
type ApiError struct { Field string Msg string }
다음 코드 조각은 오류 메시지를 사용자 정의하는 방법을 보여줍니다.
var u User err := c.BindQuery(&u); if err != nil { 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}) } return }
도우미 함수 msgForTag를 정의하여 유효성 검사를 기반으로 사용자 정의 오류 메시지를 제공할 수 있습니다. 태그:
func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
이 접근 방식을 사용하면 보다 사용자 친화적인 오류 형식이 가능하므로 최종 사용자에게 유효성 검사 오류를 더 쉽게 전달할 수 있습니다.
위 내용은 Gin에서 구조체 태그 유효성 검사에 대한 오류 메시지를 어떻게 사용자 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!