Официальная библиотека deps-go предоставляет удобный интерфейс для работы с Deps API на языке Go.
Библиотека разработана и поддерживается командой Deps API.

Установка

Быстрый старт

Простой пример получения статуса API.
main.go
package main

import (
	"context"
	"fmt"
	"log"

	depsclient "go.depscian.tech"
)

func main() {
	client, err := depsclient.NewClient("YOUR_API_KEY")
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}

	status, err := client.Status.Get(context.Background())
	if err != nil {
		log.Fatalf("Failed to get status: %v", err)
	}

	fmt.Printf("Arizona Servers: %d\n", len(status.Arizona))
}

Ключевые особенности

Библиотека deps-go разработана для максимальной эффективности и удобства разработчика.

Идиоматичность

Чистый, фасадный Go-код, который ощущается естественно.

Типизация

Полная типизация с использованием структур Go для лучшего опыта разработки.

Легковесность

Минимальное количество зависимостей.

Гибкость

Настраивайте HTTP-клиент, таймаут и базовый URL с помощью функциональных опций.

Примеры использования

players.go
package main

import (
	"context"
	"errors"
	"fmt"
	"log"

	depsclient "go.depscian.tech"
)

func main() {
	client, err := depsclient.NewClient("YOUR_API_KEY")
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}

	var serverId int = 1
	var nickname string = "NonExistentPlayer"
	player, err := client.Player.Find(context.Background(), serverId, nickname)
	if err != nil {
		if errors.Is(err, depsclient.ErrNotFound) {
			fmt.Println("Player not found.")
		} else {
			// Handle other errors (network, server-side, etc.)
			log.Fatalf("API Error: %v", err)
		}
		return
	}

	// The 'player' variable is a clean struct, not a response wrapper.
	fmt.Printf("Player ID: %d\n", player.Id)
}

Обработка ошибок

Клиент возвращает стандартную ошибку Go. Для вызовов API, которые могут привести к состоянию “не найдено” (например, поиск игрока), клиент возвращает специальную ошибку depsclient.ErrNotFound. Вы можете использовать errors.Is для проверки этого случая.

Расширенная настройка клиента

Вы можете настроить клиент NewClient, передав функциональные опции.
ПараметрТипОписание
apiKeystringОбязательный. Ваш API-ключ.
WithBaseURLfunc(string) OptionПереопределяет базовый URL API. По умолчанию https://api.depscian.tech/v2.
WithTimeoutfunc(time.Duration) OptionУстанавливает таймаут для HTTP-клиента. По умолчанию 30s.
WithHTTPClientfunc(*http.Client) OptionПозволяет использовать полностью настраиваемый http.Client.