Misar IO Docs

Go SDK

Install and use the MisarBlog Go SDK

Installation

go get github.com/misarai/misarblog-go

Quick Start

package main

import (
    "context"
    "fmt"
    "os"

    misarblog "github.com/misarai/misarblog-go"
)

func main() {
    client := misarblog.NewClient(os.Getenv("MISARBLOG_API_KEY"))

    posts, err := client.Posts.List(context.Background(), "johndoe", nil)
    if err != nil {
        panic(err)
    }
    for _, post := range posts.Data {
        fmt.Println(post.Title, post.Slug)
    }
}

Generate an Embed URL

url := client.Embed.URL(misarblog.EmbedOptions{
    Username: "johndoe",
    Theme:    "dark",
})
fmt.Println(url)

Available Methods

| Method | Description | |--------|-------------| | client.Posts.List(ctx, username, params) | List posts for a user | | client.Posts.Get(ctx, username, slug) | Get a single post by slug | | client.Embed.URL(options) | Generate an embed URL | | client.Auth.RefreshToken(ctx, token) | Refresh a session token | | client.Webhooks.List(ctx) | List webhook endpoints | | client.Webhooks.Create(ctx, request) | Register a webhook | | client.Webhooks.Delete(ctx, id) | Delete a webhook |

Error Handling

posts, err := client.Posts.List(ctx, "johndoe", nil)
if err != nil {
    var apiErr *misarblog.APIError
    if errors.As(err, &apiErr) {
        fmt.Printf("API error %d: %s\n", apiErr.StatusCode, apiErr.Message)
    } else {
        fmt.Printf("Network error: %v\n", err)
    }
}