반응형
Struct 필드의 유효성을 검증해보자.
유효성 검사를 하는 함수를 따로 구현해서 할 수도 있지만 validator 패키지를 이용해서 할 수 있다.
validator 패키지는 gin 웹 프레임워크에서도 사용하는 패키지이다.
기본적으로 태그를 이용해서 사용한다.
type User struct {
FirstName string `validate:"required"`
LastName string `validate:"required"`
Age uint8 `validate:"gte=0,lte=130"`
Email string `validate:"required,email"`
FavouriteColor string `validate:"iscolor"`
}
required 에 해당하는 필드는 반드시 존재해야 하는 필드이다.
gte=0,lte=130 같이 값의 범위를 지정할 수 있다. 해당 필드의 값은 0보다 크거나 같고 130보다 작거나 같아야 한다.
예제코드에서 사용한 태그 이외에도 정말 많은 태그들이 존재한다.
더 자세한 태그에 대한 내용은 아래 링크에서 확인해 볼 수 있다.
이제 해당 struct 의 유효성을 검증해보자.
유효성 검사는 아래와 같이 validator의 Struct 메서드를 이용해서 할 수 있다.
user := &User{
LastName: "Smith",
Age: 135,
Email: "Badger.Smith@gmail.com",
FavouriteColor: "#000-",
}
validate := validator.New()
err := validate.Struct(user)
if err != nil {
// 유효하지 않음
}
위 코드를 실행시 required 로 지정한 FirstName 필드 값이 없으므로 다음과 같은 에러가 발생한다.
'User.FirstName' Error:Field validation for 'FirstName' failed on the 'required' tag
반응형