2个版本

0.1.1 2024年2月20日
0.1.0 2024年1月15日

#259 in #requests


blacksmith中使用

MIT许可协议

6KB
92

GET_VEC

get_vec(...)方法允许对Vec<&str>形式的URL进行异步获取请求,例如。

let api = API::new();

#[threads(2)]
api.get_vec(urls, DATA_PATH).await;

这将检索urls vec中的两个文件,并将它们下载到"src/"目录中,使用2个异步线程。

包括"header"和"threads"宏;header添加自定义头部,threads指定要打开的线程数。默认情况下,threads设置为1。

以下是一个示例

#[tokio::main]
fn main() {
    let mut api = API::new(); // runner required to be mut for header changes
    let SAVE_PATH: &str = "./data";

    // Visit the first api, needing only the User-Agent (with only 1 thread)
    //

    let api_1 = vec![
        "www.endpoint_1.xml",
        "www.endpoint_2.json"
    ];

    #[header("User-Agent", "example@email_domain.com")]
    api.get_vec(api_1, ).await;
    


    // Visit the second api, now needing an API key; referred to as "API-Token"
    // (Opening 2 threads at once)
    //

    let api_2 = vec![
        "www.endpoint_3.xml",
        "www.endpoint_4.csv"
    ];

    #[threads(2)]
    #[header("User-Agent", "example@email_domain.com")]
    #[header("API-Token", "XXXXXXXXX")]
    api.get_vec(api_2, ).await;
}

待办事项!

  • request_per_second包装器+进程宏
  • 添加日志记录器(带有布尔选项)
  • 添加thiserror
  • 确定get_vec是否可以用泛型类型定义

依赖项

~265–710KB
~17K SLoC