Files
rudder-go-sdk/README.md
T
edmand46 6e7c818f75
CI / build (push) Successful in 1m14s
remove UGC surface, add CI, versioning docs
2026-08-19 17:49:03 +03:00

66 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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+. Токен не нужен — репозиторий публичный.
## Версионирование
Потребители фиксируют версию по git-тегу
(`go get hub.rudder.build/rudder/rudder-go-sdk@vX.Y.Z`). Первый тег `v0.1.0`
будет создан при релизе; до него версионирования нет.
## Доступ
`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)
```
## Ошибки
```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). Руками не править.