Misar IO Docs

Swift SDK

Install and use the MisarBlog Swift SDK

Installation

Add to Package.swift:

dependencies: [
    .package(url: "https://github.com/misarai/misarblog-swift.git", from: "1.0.0"),
],
targets: [
    .target(name: "MyApp", dependencies: [
        .product(name: "MisarBlog", package: "misarblog-swift"),
    ]),
]

Quick Start

import MisarBlog

let client = MisarBlogClient(apiKey: ProcessInfo.processInfo.environment["MISARBLOG_API_KEY"]!)

let posts = try await client.posts.list(username: "johndoe")
for post in posts.data {
    print("\(post.title) — \(post.slug)")
}

Generate an Embed URL

let url = client.embed.url(username: "johndoe", theme: "dark")
print(url)

// Single post
let postUrl = client.embed.url(username: "johndoe", slug: "my-first-post")

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:slug:theme:) | Generate an embed URL | | client.auth.refreshToken(_:) | Refresh a session token | | client.webhooks.list() | List webhook endpoints | | client.webhooks.create(_:) | Register a webhook | | client.webhooks.delete(_:) | Delete a webhook |

Error Handling

import MisarBlog

do {
    let posts = try await client.posts.list(username: "johndoe")
} catch let error as MisarBlogAPIError {
    print("API error \(error.statusCode): \(error.message)")
} catch {
    print("Error: \(error.localizedDescription)")
}