4个版本 (2个重大更改)
0.3.0 | 2019年8月12日 |
---|---|
0.2.0 | 2019年6月20日 |
0.1.1 | 2019年4月23日 |
0.1.0 | 2019年4月22日 |
在解析器实现中排名2197
2KB
Rest Client
安装
在你的Cargo.toml中
[dependencies]
"rest-client" = "0.3"
reqwest = "0.9"
[dependencies.serde]
version = "1.0"
features = [
"derive"
]
使用方法
extern crate reqwest;
extern crate rest_client;
use rest_client::*;
use serde::Deserialize;
#[rest("https://example.com/rest-api/{}/multiple?variables={}")]
#[rest("https://example.com/{}", vec)] // if it returns a json array
#[derive(Deserialize)]
struct Foo {
hello: String,
}
fn main() {
let foo: Foo = Foo::get(&["my", "arguments"]).unwrap();
let bar: Vec<Foo> = Foo::get(&[42]).unwrap();
}
#[derive(Deserialize)]
struct ErrorHandler {
err: String,
}
#[derive(Deserialize)]
#[serde(untagged)]
enum Wrapper<T> {
Success(T),
Errored(ErrorHandler),
}
#[rest("https://example.com/rest-api/{}", wrapper = Wrapper)]
#[derive(Deserialize)]
struct Foo {
hello: String,
}
fn main() {
let foo: Wrapper<Foo> = Foo::get(&["argument"]).unwrap();
}
许可证
本项目采用以下任一许可证:
任选其一。
贡献
我对本项目收到的每一份贡献都感到高兴。
对本项目的任何形式(问题、拉取请求等)的贡献必须遵守Rust的行为准则。
依赖关系
~2MB
~46K SLoC