# 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: ```bash 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 ```go 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"}) ``` ## Ошибки ```go 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). Руками не править.