Go SDK
The Go SDK provides a type-safe client for all Aerostack services.
Install
go get github.com/aerostack/aerostack-goInitialize
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.