Vapor 시리즈 자습서 - Validation

2416 단어
Swift 국내 커뮤니티: SwiftMic
Vapor는 데이터의 합법성을 검증하는 메커니즘을 제공합니다.

기본용법


Employee의 이메일과name 데이터가 합법적인지 확인
class Employee {
    var email: Valid
    var name: Valid

    init(request: Request) throws {
        email = try request.data["email"].validated()
        name = try request.data["name"].validated()
    }
}

성명Valid<> 유형을 통해 데이터의 합법성을 확보하고 검증된 데이터만 emailname에 전달할 수 있다..validated()만 사용하여 데이터 검증을 하고, request.data 되돌아오는 데이터 형식은 모두 호출할 수 있습니다 .validated().
여기에서 Email 은 Vapor 내장 validator 이고 Name 는 아닙니다.
  • Vapor 내장형 validator
  • Valid
    Valid
    Valid>
    Valid>
    Valid>
    Valid>
    Valid>
    
    Name 구현
    class Name: ValidationSuite {
        static func validate(input value: String) throws {
            let evaluation = OnlyAlphanumeric.self
                && Count.min(5)
                && Count.max(20)
    
            try evaluation.validate(input: value)
        }
    }
    

    순수한 자모와 글자 수가 5~20 사이인 이름만 검증할 수 있다.
    사용 예
    drop.post("validation") { request in
        do {
            let employee = try Employee(request: request)
            
            print("employee name : \(employee.name.value)")
            print("employee email : \(employee.email.value)")
        } catch let error as ValidationError {
            return "Email is invalid"
        } catch let error as ValidationError {
            return "Name is invalid"
        }
        
        return "validation success"
    }
    

    전송된 name 데이터와 email 데이터가 모두 합법적이어야만 검증을 통과할 수 있으며, 그렇지 않으면 이상이 발생할 것이다.
    통과validated 외에 다른 두 가지 방식으로 검증하다
        let text = "test123"
        let result1 = text.passes(Count.min(5))
        let result2 = try text.tested(by: Count.min(5))
        
        print("result1 = \(result1)")
        print("result2 = \(result2)")
    

    출력
    result1 = true result2 = test123 passes 방법은 Bool 유형을 되돌려주고, tested 방법은 원시 유형을 되돌려준다.
    Go to Vapor 시리즈 자습서 - 카탈로그

    좋은 웹페이지 즐겨찾기