#rest-client #codegen #derive-deserialize

过程宏 rest-client_codegen

rest-client代码生成器

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日

#derive-deserialize 中排名 #62


rest-client 中使用

MIT/Apache

5KB
75

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();
}

许可证

本项目受以下任一许可证的许可:

您可任选其一。

贡献

我非常欢迎对这个项目的任何贡献。

对本项目的任何形式(问题、pull请求等)的贡献必须遵守Rust的 行为准则

依赖

~2MB
~46K SLoC