macro_rules! generate {
($client_type:ident, {
$(
$resource:ident {
$(
#[$method:ident $url:literal]
$function:ident($($param:ident : $type:ty),*)
),* $(,)?
}
),* $(,)?
}) => { ... };
}Expand description
easily creates an api client
api_client_macro::generate!(ApiClient, {
user {
#[get "user/{}"]
get_by_id(id: &str),
#[delete "user/{}"]
delete_by_id(id: &str),
#[post "user"]
create(),
#[get "users"]
list()
},
contact {
#[get "contact/{}"]
get_by_id(id: &str),
#[delete "contact/{}"]
delete_by_id(id: &str),
#[post "contact"]
create(),
#[get "contact"]
list()
}
});
fn main() {}
async fn main_async() {
let client = asynchronous::Builder::new("base_url", None);
client.contact_create().body("<body>").send().await.unwrap();
client.contact_get_by_id("<id>").send().await.unwrap();
client.user_list().query(&[("email", "<email>")]).send().await.unwrap();
}
fn main_blocking() {
let client = blocking::Builder::new("base_url", None);
client.contact_create().body("<body>").send().unwrap();
client.contact_get_by_id("<id>").send().unwrap();
client.user_list().query(&[("email", "<email>")]).send().unwrap();
}