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),
}