Documentation Index
Fetch the complete documentation index at: https://docs.depscian.tech/llms.txt
Use this file to discover all available pages before exploring further.
Заголовки запросов
Для всех запросов к API необходимо указывать следующие заголовки:
| Заголовок | Обязательный | Описание |
|---|
| X-API-Key | Да | Ваш API-ключ |
| Accept | Нет | application/json |
Лимиты
Лимиты запросов
Обработка ошибок
Deps API использует систему ограничения частоты запросов для обеспечения стабильной работы сервиса для всех пользователей.| Тип ключа | Интервал в секундах | Запросов в минуту |
|---|
| Стандартный | 10 | 6 |
| Корпоративный | Договорной | Договорной |
При превышении лимита API возвращает код состояния 429 Too Many Requests и заголовок Retry-After, указывающий количество секунд до момента, когда можно будет сделать следующий запрос.
При возникновении ошибки API возвращает соответствующий HTTP-код и объект JSON с детальной информацией:{
"error_code": "PLAYER_NOT_FOUND",
"error_message": "Игрок с таким никнеймом не найден на сервере",
"error_id": "550e8400-e29b-41d4-a716-446655440000"
}
Поле error_id можно использовать при обращении в техподдержку для быстрого выявления проблемы.
Рекомендуемые настройки клиента
Настройка таймаутов
Рекомендуется устанавливать следующие таймауты для HTTP-клиента:
- Таймаут соединения: 5 секунд
- Таймаут ожидания ответа: 30 секунд
Реализация повторных попыток
Для повышения надежности вашего приложения рекомендуется реализовать механизм повторных попыток с экспоненциальной задержкой для кодов ошибок 5xx и 429:import time
import requests
def request_with_retry(url, headers, max_retries=3):
retries = 0
while retries < max_retries:
try:
response = requests.get(url, headers=headers)
if response.status_code < 500 and response.status_code != 429:
return response
if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', 1))
time.sleep(retry_after)
else:
time.sleep(2 ** retries)
except requests.exceptions.RequestException:
pass
retries += 1
raise Exception("Превышено максимальное количество попыток")
Мониторинг и логирование
Для эффективного отслеживания использования API рекомендуется внедрить логирование всех запросов и ответов в вашем приложении. Это поможет диагностировать проблемы и оптимизировать использование API.
Кэширование
Для оптимизации производительности и снижения количества запросов рекомендуется кэшировать ответы API, особенно для данных, которые меняются редко:const cache = new Map();
const CACHE_TTL = 300000;
async function getCachedPlayerData(nickname, serverId, apiKey) {
const cacheKey = `player_${nickname}_${serverId}`;
const cachedData = cache.get(cacheKey);
if (cachedData && (Date.now() - cachedData.timestamp < CACHE_TTL)) {
return cachedData.data;
}
const response = await fetch(`https://api.depscian.tech/v2/player/find?nickname=${nickname}&serverId=${serverId}`, {
headers: { 'X-API-Key': apiKey }
});
if (response.ok) {
const data = await response.json();
cache.set(cacheKey, { data, timestamp: Date.now() });
return data;
}
throw new Error(`Ошибка API: ${response.status}`);
}