구조체 태그 유효성 검사에서 오류 메시지 사용자 정의
Gin에서는 데이터베이스 삽입 전에 데이터 무결성을 보장하기 위해 구조 태그 유효성 검사가 사용됩니다. 반환되는 기본 오류는 장황하고 사용자에게 유익하지 않습니다. 이 문서에서는 보다 의미 있는 응답을 제공하기 위해 오류 메시지를 사용자 정의하는 방법을 설명합니다.
Gin은 유효성 검사를 위해 go-playground/validator/v10 패키지를 활용합니다. 오류는 validator.ValidationErrors로 반환됩니다. 메시지를 맞춤 설정하려면 표준 오류 패키지를 사용하여 오류를 풀고 validator.FieldError 필드에 액세스하세요.
오류 모델(예: ApiError)을 만들어 맞춤 오류 메시지의 구조를 정의하세요. 예를 들면 다음과 같습니다.
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 }
마지막으로 유효성 검사 태그를 사용자 지정 메시지에 매핑하는 도우미 함수를 정의합니다.
func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
이 접근 방식을 사용하면 오류 메시지가 필드 이름과 유효성 검사 태그를 기반으로 한 맞춤형 메시지로 사용자 정의됩니다.
위 내용은 Gin의 구조체 태그 유효성 검사에서 오류 메시지를 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!