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 编程
每月 148 次下载
用于 atac
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