#curl #reqwest #command #convert #request-builder #parser #api

curl-parser

将 curl 命令转换为 ParsedRequest(可进一步转换为 reqwest::RequestBuilder)

4 个版本 (2 个破坏性版本)

0.3.1 2023年12月18日
0.2.1 2023年2月9日
0.2.0 2023年2月9日
0.1.1 2023年2月9日

#891 in Web 编程

Download history 2/week @ 2024-05-13 8/week @ 2024-06-03 8/week @ 2024-06-10 1/week @ 2024-06-17 34/week @ 2024-06-24 32/week @ 2024-07-01 23/week @ 2024-07-08 36/week @ 2024-07-15 36/week @ 2024-07-22

每月 148 次下载
用于 atac

MIT 许可证

22KB
329

CURL 解析器

如今,大多数 API 都提供 CURL 示例,以便用户在没有入门障碍的情况下尝试 API,但将这些示例消化并转换为 Rust 代码需要花费时间。这个 crate 可以将 CURL 命令转换为 Rust 代码。

目前,它支持 -X-H-d-u 选项,因为这些是最常用的。

用法

let input = r#"curl \
    -X PATCH \
    -d '{"visibility":"private"}' \
    -H "Accept: application/vnd.github+json" \
    -H "Authorization: Bearer <YOUR-TOKEN>"\
    -H "X-GitHub-Api-Version: 2022-11-28" \
    https://api.github.com/user/email/visibility "#;
let parsed = curl_parser::ParsedRequest::try_from(input)?;
println!("{:#?}", parsed);
let req: reqwest::RequestBuilder = parsed.into();
let res = req.send().await?;
assert_eq!(res.status(), 200);

默认情况下,已启用 reqwest,以便您可以将 ParsedRequest 转换为 reqwest::RequestBuilder。如果您不想使用 reqwest,您可以禁用默认功能。

依赖项

~7–18MB
~294K SLoC