#rest #client #web #api-client #api

ease

构建REST客户端的库

9个版本 (5个重大更新)

使用旧的Rust 2015

0.6.1 2016年10月4日
0.5.0 2016年6月30日
0.4.2 2016年1月26日
0.4.1 2015年9月13日
0.2.0 2015年7月23日

#141 in #rest

每月25次下载

MIT/Apache

11KB
197 代码行

Ease - Rust的HTTP客户端 构建状态

Ease 是一个用于与RESTful API交互的库。

示例

Cargo.toml 中添加

[dependencies]
ease = "*"

发起GET请求并打印结果

extern crate ease;

use ease::{Url, Request};

fn main() {
    let url = Url::parse("http://httpbin.org/get").unwrap();
    println!("{}", Request::new(url).param("foo", "bar").get().unwrap().body);
}

发起POST请求并使用 serde 反序列化JSON响应

#![feature(custom_derive, plugin)]
#![plugin(serde_macros)]

extern crate ease;

use std::collections::HashMap;
use ease::{Url, Request};

#[derive(Deserialize, Debug)]
struct PostResponse {
    args: HashMap<String, String>,
    data: Option<String>,
    files: Option<HashMap<String, String>>,
    form: Option<HashMap<String, String>>,
    headers: HashMap<String, String>,
    json: Option<String>,
    origin: String,
    url: String,
}

fn main() {
    let url = Url::parse("http://httpbin.org/post").unwrap();
    println!("{:#?}", Request::new(url).post().and_then(|res| res.from_json::<PostResponse>()));
}

文档

在线文档可用,可以使用 cargo doc 命令构建本地副本。

许可证

许可协议为以下之一:

任选其一。

贡献

除非你明确说明,否则根据Apache-2.0许可证定义的,你有意提交以包含在作品中的任何贡献,都应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~6MB
~142K SLoC