#api-client #rest #macro #express #user-id #contact #declaratively

api-client-macro

以声明式方式表达 REST API 客户端

3 个版本

0.1.2 2023 年 5 月 16 日
0.1.1 2023 年 5 月 15 日
0.1.0 2023 年 5 月 15 日

#16 in #express

每月 30 次下载

MIT/Apache

5KB

使用方法

使用 api_client_macro::generate! 可以生成一个由 reqwest 驱动的 REST API 客户端,前提是以下语法正确。

api_client_macro::generate!(ApiClient, {
    user {
        get_by_id: get "user/{id}" id: &str,
        delete_by_id: delete "user/{id}" id: &str,
        create: post "user",
        list: get "users"
    },
    contact {
        get_by_id: get "contact/{id}" id: &str,
        delete_by_id: delete "contact/{id}" id: &str,
        create: post "contact",
        list: get "contact"
    }
});

编译后,以下代码可用。

fn main() {
    let client = ApiClientBuilder::new("<api-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();
}

无运行时依赖