Misar IO Docs

Rust SDK

Install and use the MisarBlog Rust SDK

Installation

Add to Cargo.toml:

[dependencies]
misarblog = "0.1"
tokio = { version = "1", features = ["full"] }

Quick Start

use misarblog::MisarBlogClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = MisarBlogClient::new(std::env::var("MISARBLOG_API_KEY")?);

    let posts = client.posts().list("johndoe", Default::default()).await?;
    for post in &posts.data {
        println!("{} — {}", post.title, post.slug);
    }

    Ok(())
}

Generate an Embed URL

let url = client.embed().url("johndoe", &Default::default());
println!("{}", url);

// Single post with options
use misarblog::EmbedOptions;
let url = client.embed().url("johndoe", &EmbedOptions {
    slug: Some("my-first-post".into()),
    theme: Some("dark".into()),
    ..Default::default()
});

Available Methods

| Method | Description | |--------|-------------| | client.posts().list(username, params) | List posts for a user | | client.posts().get(username, slug) | Get a single post by slug | | client.embed().url(username, options) | Generate an embed URL | | client.auth().refresh_token(token) | Refresh a session token | | client.webhooks().list() | List webhook endpoints | | client.webhooks().create(request) | Register a webhook | | client.webhooks().delete(id) | Delete a webhook |

Error Handling

use misarblog::Error;

match client.posts().list("johndoe", Default::default()).await {
    Ok(posts) => { /* use posts */ }
    Err(Error::Api { status, message }) => {
        eprintln!("API error {}: {}", status, message);
    }
    Err(e) => eprintln!("Error: {}", e),
}