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