1 个不稳定版本
0.1.0 | 2024年2月24日 |
---|
#131 in #requests
12KB
151 行
pasty-rs
为pasty提供的低级别API包装器。
cargo add pasty-rs
由于此SDK当前仅允许异步请求,您可能需要安装异步运行时,如tokio、async-std或smol。
示例用法
以下示例使用tokio作为异步运行时。
cargo add tokio --features all
use pasty_rs::client::UnauthenticatedClient;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Create an API client for unauthenticated requests.
let client = UnauthenticatedClient::new("https://pasty.lus.pm")?;
// Create a paste.
let paste = client.create_paste("hello pasty!", None).await?;
dbg!(&paste);
// Store the modification_token of that paste.
let modification_token = paste.modification_token;
// Get a paste by id (the one we've created).
let paste = client.paste(&paste.paste.id).await?;
dbg!(&paste);
// Transform the unauthenticated client into an authenticated client
// using the modification_token of the created paste.
let client = client.authenticate(&modification_token);
// Update the previously created paste with the authenticated client.
client
.update_paste(&paste.id, "new hello world", None)
.await?;
// Retireve the updated posts content.
let paste = client.inner().paste(&paste.id).await?;
dbg!(&paste);
// Delete the created post.
client.delete_paste(&paste.id).await?;
Ok(())
}
限制
由于这是为另一个项目快速完成的实现,此crate目前有一些限制。
- 目前仅支持异步请求。
- 目前不支持报告粘贴端点。
许可协议
此crate采用MIT许可证。
pasty采用MIT许可证,(c) 2020 Lukas SP。
依赖
~3–18MB
~245K SLoC