7个版本 (4个重大变更)

使用旧的Rust 2015

0.5.0 2017年3月19日
0.4.1 2017年2月25日
0.3.1 2016年11月29日
0.3.0 2016年10月17日
0.1.0 2016年6月15日

#226 in 邮件

MIT 协议

115KB
2.5K SLoC

iron_valid

Build Status Version License

概述

iron_valid是一个用于iron的表单验证库,它与params crate集成。它基于Laravel的验证,并具有类似的工作方式。

如果您遇到任何问题,请通过GitHub问题标签报告。请尽可能提供详细信息。

用法

以下是一个使用iron_valid验证表单请求的示例

use iron::prelude::*;
use iron::status;
use iron_valid::{Rule, validate};
use params::{Params, Value};
use std::collections::BTreeMap;

pub fn register(req: &mut Request) -> IronResult<Response> {
    let params = match req.get::<Params>() {
        Ok(p) => p,
        Err(_) => {
            return Ok(Response::with((status::BadRequest)));
        }
    };

    let mut rules = BTreeMap::new();
    rules.insert("email", vec![Rule::Required, Rule::Email]);
    rules.insert("password", vec![Rule::Required, Rule::Confirmed, Rule::Min(8)]);

    match validate(rules, params) {
        Ok(ref values) => {
            // Save the user to the database
            let email = values.find(&["email"]).unwrap();

            // ...

            Ok(Response::with((status::Ok)))
        }
        Err(_) => Ok(Response::with((status::BadRequest))),
    }
}

此示例将使用params crate解析请求参数,然后使用指定的规则验证请求中的emailpassword字段。

您还可以验证请求体中的嵌套字段。例如,要验证结构体{ user: { name: 'foo', email: 'a@b.com' } },您可以将user.nameuser.email作为键传递给传递给validaterules。这也适用于接受第二个字段参数的Rule

完整的文档和验证规则列表可在此处查看。

iron_valid遵循语义版本控制。

贡献

欢迎任何贡献,并将通过GitHub的pull请求接受。可以通过GitHub问题报告提交错误报告。如果您有能力在错误报告时提交修复,则建议通过pull请求提交,但您不需要是Rust程序员即可贡献。其他贡献(如改进文档或翻译)也欢迎通过GitHub进行。

许可证

iron_valid是开源软件,采用MIT许可证分发。

依赖项

~11MB
~238K SLoC