본문 바로가기

Golang

[Golang] golang validator

728x90

Required 

  • 값이 zero value가 아닌 것인지 확인 → 0, “”, slice나 map같은 건 nil 값이 아니여야함
Usage: required

Required With 

  • 다른 필드가 존재하면 해당 필드도 required
Usage: required_with

Examples:

// require the field if the Field1 is present:
Usage: required_with=Field1

// require the field if the Field1 **or** Field2 is present:
Usage: required_with=Field1 Field2

Required With All 

  • required_with의 and버전
Usage: required_with_all

Example:

// require the field if the Field1 and Field2 is present:
Usage: required_with_all=Field1 Field2

Is Default 

  • required의 반대, default value인지 확인
Usage: isdefault

Length 

  • 숫자인 경우, 해당 값과 똑같아야 함(equal)
  • string은 character 개수, slice, map과 같은 건 item 개수
Usage: len=10

Maximum 

  • string의 경우 최대 길이
Usage: max=10

Minimum 

Usage: min=10

Equals 

  • string의 경우는 value와 똑같은지 확인
  • slice, map은 Item 개수
Usage: eq=10

Not Equal 

Usage: ne=10

One Of 

  • string, number만 가능 → white space로 구분
Usage: oneof=red green
       oneof=5 7 9

Greater Than  / Greater / Less Than / Less …

  • time일 경우 time.Now.UTC() 기준

Unique 

  • array, slice의 경우는 중복 값 없는 것을 확인
  • map은 value가 중복 없는 것을 확인
  • struct slice는 파라미터로 넘긴 필드의 value가 중복 없는 것 확인
// For arrays, slices, and maps:
Usage: unique

// For slices of struct:
Usage: unique=field

Alpha Only 

  • ASCII alpha characters only
Usage: alpha

Alphanumeric 

  • ASCII alphanumeric characters only
Usage: alphanum

Numeric 

  • string이 숫자여도 validated
Usage: numeric

Contains 

Contains Any 

Contains Rune 

Excludes 

Excludes All 

Excludes Rune 

Starts With 

Ends With 

728x90