Deps API использует систему аутентификации на основе API-ключей для обеспечения безопасного доступа к ресурсам. Все запросы к API должны включать действительный API-ключ.

Авторизация API-ключом

Каждый запрос к Deps API должен включать ваш API-ключ в заголовке X-API-Key.

Пример запроса

curl -X GET "https://api.depscian.tech/v2/player/find" \
  -H "X-API-Key: API_KEY"

Пример ответа при отсутствии или недействительном ключе

{
  "error_code": "UNAUTHORIZED",
  "error_message": "API key is missing (X-API-Key). You can get it here: https://t.me/DepsAPI_bot",
  "error_id": "401e8400-e29b-41d4-a716-446655440000"
}

Безопасность

Защита API-ключа

Ваш API-ключ должен храниться в безопасном месте и не должен быть доступен публично. Рекомендуется:

  • Не включать API-ключи в исходный код, доступный в публичных репозиториях
  • Использовать переменные окружения или системы управления секретами
  • Регулярно проверять использование ключа для выявления подозрительной активности

Ротация ключей

Регулярная смена API-ключей является хорошей практикой безопасности. Для ротации ключей:

  1. Создайте новый API-ключ в панели управления
  2. Обновите ваше приложение для использования нового ключа
  3. После успешного перехода отзовите старый ключ

Типы аутентификации

Стандартная аутентификация

Для большинства сценариев использования достаточно стандартной аутентификации с использованием заголовка X-API-Key.

Ошибки аутентификации

Код ошибкиHTTP-кодОписание
UNAUTHORIZED401Отсутствует или недействительный API-ключ
RATE_LIMIT_EXCEEDED429Превышен лимит запросов для API-ключа

Рекомендации по разработке

Централизованное управление аутентификацией

Вместо добавления API-ключа к каждому запросу вручную, рекомендуется создать централизованную функцию для добавления заголовков аутентификации:

import requests

class DepsApiClient:
    def __init__(self, api_key, base_url="https://api.depscian.tech/v2"):
        self.api_key = api_key
        self.base_url = base_url
        self.session = requests.Session()
        self.session.headers.update({
            "X-API-Key": self.api_key,
            "Accept": "application/json"
        })
    
    def get(self, endpoint, params=None):
        url = f"{self.base_url}/{endpoint}"
        response = self.session.get(url, params=params)
        response.raise_for_status()
        return response.json()
    
    def post(self, endpoint, data=None):
        url = f"{self.base_url}/{endpoint}"
        response = self.session.post(url, json=data)
        response.raise_for_status()
        return response.json()

client = DepsApiClient("API_KEY")
player_data = client.get("player/find", {"nickname": "NickName", "serverId": 1})