1 个不稳定版本
0.1.0 | 2023年5月21日 |
---|
63 in #post
9KB
77 行
TinyFetch是一个轻量级的Rust库,可以轻松发送HTTP请求。它提供简单一致的用户界面,用于执行GET
、POST
、PUT
、PATCH
和DELETE
请求。它建立在reqwest包之上,旨在易于使用和维护。
使用方法
将tinyfetch
和tokio
包作为依赖项添加到你的Rust项目的Cargo.toml
文件中
[dependencies]
tinyfetch = "0.1.0"
tokio = { version = "1", features = ["full"] }
将TinyFetch
结构体导入到你的Rust代码中
use tinyfetch::TinyFetch;
现在你可以使用TinyFetch方法执行HTTP请求。以下是如何使用每个方法的示例
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// GET
let response = TinyFetch::get("https://dummyjson.com/products/").await?;
println!("GET Response: {}", response);
// POST
let body = r#"
{
"name": "Example Product",
"price": 9.99,
"quantity": 10
}
"#;
let response = TinyFetch::post("https://dummyjson.com/products/add", body).await?;
println!("POST Response: {}", response);
// PUT
let body = r#"
{
"name": "Updated Product",
"price": 19.99,
"quantity": 5
}
"#;
let response = TinyFetch::put("https://dummyjson.com/products/1", body).await?;
println!("PUT Response: {}", response);
// PATCH
let body = r#"
{
"price": 14.99
}
"#;
let response = TinyFetch::patch("https://dummyjson.com/products/1", body).await?;
println!("PATCH Response: {}", response);
// DELETE
let response = TinyFetch::delete("https://dummyjson.com/products/1").await?;
println!("DELETE Response: {}", response);
Ok(())
}
确保在你的main
函数上使用#[tokio::main]
属性来启用与Tokio的异步执行。
支持的HTTP方法
TinyFetch支持以下HTTP方法
- GET:
TinyFetch::get(url: &str) -> Result<String, Box<dyn std::error::Error>>
- POST:
TinyFetch::post(url: &str, body: &str) -> Result<String, Box<dyn std::error::Error>>
- PUT:
TinyFetch::put(url: &str, body: &str) -> Result<String, Box<dyn std::error::Error>>
- PATCH:
TinyFetch::patch(url: &str, body: &str) -> Result<String, Box<dyn std::error::Error>>
- DELETE:
TinyFetch::delete(url: &str) -> Result<String, Box<dyn std::error::Error>>
每个方法都接受一个字符串参数URL,并返回一个包含响应体字符串或错误的Result。
错误处理
TinyFetch使用Rust的错误处理机制来传播错误。如果在HTTP请求过程中发生错误,它将以Box的形式返回。您可以使用标准的Rust错误处理技术,如?
或模式匹配,在您的代码中处理这些错误。
运行测试
cargo test
贡献
欢迎对TinyFetch做出贡献!如果您遇到任何问题或有改进建议,请在GitHub仓库中提交一个问题。我们也欢迎拉取请求。
要为项目做出贡献,请按照以下步骤操作
- 将仓库分叉并克隆到您的本地机器。
- 为您的功能或错误修复创建一个新的分支。
- 进行更改并确保代码通过所有测试。
- 为任何新的功能或更改编写测试。
- 提交您的更改并将它们推送到您分叉的仓库。
- 在主仓库上提交拉取请求。
请确保您的代码遵循既定的编码风格和约定。添加测试以覆盖新功能,并确保现有测试通过。
许可
TinyFetch是开源软件,根据MIT许可证授权。有关更多详细信息,请参阅LICENSE文件。
联系
对于任何进一步的查询或问题,请通过GitHub仓库联系TinyFetch的维护者。
致谢
TinyFetch受到Ruby的HTTParty库的简单性和功能性的启发。特别感谢reqwest和tokio的开发者,他们提供了必要的工具和库,使得这个项目成为可能。
依赖关系
~5–20MB
~249K SLoC