1 个不稳定版本

0.1.0 2024年2月24日

#131 in #requests

MIT 协议

12KB
151

pasty-rs

pasty提供的低级别API包装器。

cargo add pasty-rs

由于此SDK当前仅允许异步请求,您可能需要安装异步运行时,如tokioasync-stdsmol

示例用法

以下示例使用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