📏
Swift LIVR 验证器
轻量级的 Swift 验证器,支持语言无关验证规则规范 (LIVR)。
描述
请参阅 LIVR 规范 获取详细文档和受支持的规则列表。
特性
- 规则是声明性的,且与语言无关
- 每个字段可以有任意数量的规则
- 为所有字段返回错误
- 排除所有未描述验证规则的字段
- 可以验证复杂分层结构
- 规则易于描述和理解
- 返回易于理解的错误代码(而不是错误消息)
- 易于添加自己的规则
- 规则可以更改输出结果(例如 "trim","nested_object")
- 多用途(用户输入验证,配置验证,合约编程等)
概要
常用用法
let rules = ["first_name": "required",
"age": "adult_age",
"last_name": ["required"],
"middle_name": [["required": []]],
"salary": ["required": []]
]
var validator = LIVR.validator(validationRules: rules, isAutoTrim: true)
var output: Validator.Output?
do {
output = try validator.validate(data: inputJson)
} catch { print((error as? ValidatingError)?.description) }
if let output = output {
save(userData)
} else {
print("Errors" + validator.errors.description)
}
您可以单独使用修饰符,也可以将它们与验证结合使用
let rules = ["email": ["required", "trim", "email", "to_lc"]]
var validator = LIVR.validator(validationRules: rules, isAutoTrim: true)
随时注册您自己的规则
您可以通过规则字典或传递别名(首选,语法由规范覆盖)来为许多情况使用别名
let rules = ["age": ["required", "adult_age"],
"age-2": ["adult_age_with_custom_error"]
]
var validator = LIVR.validator(validationRules: rules)
let aliasingRules = [
[
"name": "adult_age",
"rules": ["positive_integer", ["min_number": 18]]
],
[
"name": "adult_age_with_custom_error",
"rules": ["positive_integer", ["min_number": 18]],
"error": "WRONG_AGE"
]
]
validator.registerRule(aliases: aliasingRules)
或通过传递别名名称、规则和 errorCode 来使用别名
let rules = ["password": ["required", "strong_password"]]
var validator = LIVR.validator(validationRules: rules)
validator.registerRule(alias: "strong_password", rules: ["min_length": 6], errorCode: "WEAK_PASSWORD")
安装
CocoaPods
使用 pod --version
检测版本: 1.0.3
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'Livr'
end
替换 YOUR_TARGET_NAME
,然后在 Podfile
目录中输入
$ pod install
贡献与未来改进
请随意分支,开放特性请求、问题单和PR。已知问题和映射活动在此存储库问题中。将很快提供 contribuiting.md
。
许可
Livr遵循MIT许可。有关详细信息,请参阅LICENSE。
特别感谢/信誉
- @jotafeldmann 为帮助我理解并映射创建此框架的挑战。