8 个版本
使用旧的 Rust 2015
0.3.4 | 2017 年 7 月 1 日 |
---|---|
0.3.3 | 2016 年 2 月 5 日 |
0.3.0 | 2016 年 1 月 31 日 |
0.2.0 | 2016 年 1 月 25 日 |
0.1.1 | 2016 年 1 月 24 日 |
#2207 in 解析器实现
17KB
358 行
Crest
Crest 是一个用 Rust 编写的 REST 客户端库。
状态
目前处于实验性状态,功能不完整。欢迎提交拉取请求。
安装
Crest 可从 Cargo 获取。要使用它,请将以下内容添加到 [dependencies]
的 Cargo.toml
crest = "0.3"
使用
示例:发送 GET
请求并反序列化响应
以下代码首先构造了一个针对 https://httpbin.org/ip
的资源的 GET
请求,然后将响应(以 JSON 格式)反序列化为自定义类型。
注意,反序列化由 serde 执行;有关如何为自定义类型推导 Deserialize
的更多信息,请参阅 serde 文档。
extern crate crest;
extern crate serde;
use crest::error::Result;
use crest::prelude::*;
#[derive(Debug, Deserialize)]
struct HttpbinIP {
origin: String,
}
fn example() -> Result<HttpbinIP> {
// 1. Construct the endpoint off a base URL
let endpoint = try!(Endpoint::new("https://httpbin.org/"));
// 2. Construct the request
let request = try!(endpoint.get(&["ip"]));
// 3. Perform the request
let response = try!(request.send());
// 4. Deserialize the response
let ip = try!(response.into::<HttpbinIP>());
Ok(ip)
}
更多文档请见 此处。
许可证
Crest 根据 Apache 许可证版本 2.0(见 LICENSE-APACHE
)或 MIT 许可证(见 LICENSE-MIT
)授权,任选其一。
依赖项
~7.5MB
~164K SLoC