Go SDK

The Go SDK provides a type-safe client for all Aerostack services.

Install

go get github.com/aerostack/aerostack-go

Initialize

import "github.com/aerostack/aerostack-go"
 
client, err := aerostack.NewClient(aerostack.Config{
    ProjectID: os.Getenv("PROJECT_ID"),
    APIKey:    os.Getenv("API_KEY"),
    BaseURL:   "https://api.aerostack.ai/v1",
})

Database

// Query multiple rows
users, err := client.DB.Query[User](ctx, "SELECT * FROM users WHERE active = 1")
 
// Query single row
user, err := client.DB.QueryOne[User](ctx, "SELECT * FROM users WHERE id = ?", userID)
 
// Execute (INSERT, UPDATE, DELETE)
err = client.DB.Exec(ctx, "UPDATE users SET name = ? WHERE id = ?", newName, userID)

Auth

// Verify JWT token from request header
user, err := client.Auth.VerifyToken(ctx, tokenString)
if err != nil || user == nil {
    http.Error(w, "Unauthorized", 401)
    return
}

Realtime

// Subscribe to DB table changes
ch, err := client.Realtime.Channel("orders")
ch.On("INSERT", func(payload aerostack.RealtimePayload) {
    fmt.Printf("New order: %v\n", payload.Data)
})
ch.Subscribe()
 
// Broadcast from server
client.Socket.Emit("order:updated", order, "orders/"+orderID)

Cache

// Set with TTL
err = client.Cache.Set(ctx, "user:"+userID, userData, 300)
 
// Get
var userData User
found, err := client.Cache.Get(ctx, "user:"+userID, &userData)

See API Reference for the full method listing.