generate

Macro generate 

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