rudder-go-sdk

Серверный Go SDK для LiveOps-платформы Rudder. Покрывает server-admin поверхность /game/v1 (auth по X-API-Key).

Install

Модуль раздаётся напрямую с self-hosted Gitea, минуя proxy.golang.org, поэтому Go должен пропускать его мимо checksum database:

go env -w GOPRIVATE=hub.rudder.build/*
go get hub.rudder.build/rudder/rudder-go-sdk@latest

Требуется Go 1.21+. Токен не нужен — репозиторий публичный.

Доступ

APIKey — это per-project Admin Key: поле «Admin Key» в настройках проекта в дашборде (app.rudder.build → проект → Settings). Ключ сам определяет проект, отдельный project ID не нужен. Храните его только на сервере — никогда не вшивайте в игровые клиенты.

Usage

client, err := rudder.New(rudder.Config{
    APIKey: os.Getenv("RUDDER_ADMIN_KEY"),
})
if err != nil {
    // *rudder.APIError с кодом sdk/invalid-options
}

players, err := client.Players.List(ctx, rudder.ListPlayersParameters{Limit: 100})
entries, err := client.Leaderboards.Results(ctx, "weekly")
wallet, err := client.Wallet.Adjust(ctx, playerID, rudder.AdjustWalletParameters{
    CurrencyCode: "coins",
    Amount:       100,
    Reason:       "compensation",
})
metrics, err := client.Metrics.Get(ctx)
page, err := client.Ugc.List(ctx, rudder.ListUgcParameters{Status: "pending"})

Ошибки

var apiErr *rudder.APIError
if errors.As(err, &apiErr) {
    apiErr.Status    // HTTP status
    apiErr.Code      // машинный код из тела ошибки gateway
    apiErr.RequestID // корреляция с логами gateway
}

Генерация

models/ генерируется apigen'ом из liveops-gateway/openapi.yaml (make generate-openapi в liveops-gateway). Руками не править.

S
Description
No description provided
Readme MIT 122 KiB
Languages
Go 100%