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 解析器实现

Apache-2.0/MIT

17KB
358

Crest

Build Status

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