17个不稳定版本 (8个破坏性版本)

使用旧的Rust 2015

0.8.0 2017年11月27日
0.6.0 2017年1月20日
0.5.1 2016年11月29日
0.3.0 2016年7月23日
0.0.1 2015年7月8日

#608 in HTTP服务器

Download history 249/week @ 2024-03-13 304/week @ 2024-03-20 371/week @ 2024-03-27 348/week @ 2024-04-03 288/week @ 2024-04-10 316/week @ 2024-04-17 449/week @ 2024-04-24 280/week @ 2024-05-01 271/week @ 2024-05-08 282/week @ 2024-05-15 444/week @ 2024-05-22 304/week @ 2024-05-29 298/week @ 2024-06-05 201/week @ 2024-06-12 298/week @ 2024-06-19 255/week @ 2024-06-26

1,101 每月下载次数
12 个crate中使用 (11 个直接使用)

MIT/Apache

42KB
791

params 构建状态

Iron Web框架的插件,可以从以下来源解析传入请求的参数

  • JSON数据 (Content-Type: application/json)
  • URL编码的GET参数
  • URL编码的 Content-Type: application/x-www-form-urlencoded 参数
  • 多部分表单数据 (Content-Type: multipart/form-data)

此插件将这些来源的所有请求参数合并到一个单 params::Map 中,通过任何Iron请求使用 req.get_ref::<params::Params>() 可访问。工作示例

// Visit `http://127.0.0.1:3000/?user[name]=Marie` to be greeted with a welcome message. Any other
// request will return a 404 error.

extern crate iron;
extern crate params;

use iron::prelude::*;

fn handle_user(req: &mut Request) -> IronResult<Response> {
    use params::{Params, Value};

    let map = req.get_ref::<Params>().unwrap();

    match map.find(&["user", "name"]) {
        Some(&Value::String(ref name)) if name == "Marie" => {
            Ok(Response::with((iron::status::Ok, "Welcome back, Marie!")))
        },
        _ => Ok(Response::with(iron::status::NotFound)),
    }
}

fn main() {
    Iron::new(handle_user).http("127.0.0.1:3000").unwrap();
}

您可以为任何 Sized 类型实现 params::FromValue 以执行自定义请求参数反序列化。查看 src/conversion.rs 以获取灵感!

该软件包已完全文档化,我们正在努力将其托管在ironframework.io

请参阅examples/params.rs以获取交互式示例。

许可证

许可协议为以下之一

您可选择其中之一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,包括在作品中,都应双许可如上所述,无需任何额外的条款或条件。

依赖项

~7MB
~156K SLoC