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服务器
1,101 每月下载次数
在 12 个crate中使用 (11 个直接使用)
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 License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择其中之一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,包括在作品中,都应双许可如上所述,无需任何额外的条款或条件。
依赖项
~7MB
~156K SLoC