Перейти к основному содержимому

❓ Часто задаваемые вопросы

Найдите ответы на самые популярные вопросы о ServerCon API.

🔑 Аутентификация и ключи​

Как получить API ключ?​

  1. Зарегистрируйтесь на платформе ServerCon
  2. Войдите в личный кабинет
  3. Перейдите в раздел "API" в настройках профиля
  4. Создайте новый API ключ с необходимыми разрешениями
  5. Скопируйте ключ - он больше не будет показан в интерфейсе

Можно ли использовать тестовый ключ в продакшене?​

Нет, тестовый ключ test_key_12345 предназначен только для разработки и тестирования. Для продакшена необходимо получить полноценный API ключ.

Как проверить валидность API ключа?​

Используйте эндпоинт /api/v1/stats для проверки вашего ключа:

curl -H "Authorization: Bearer ваш_api_ключ" \
http://138.124.109.53:5000/api/v1/stats

Что делать, если API ключ не работает?​

  1. Проверьте правильность заголовка Authorization: Bearer ваш_ключ
  2. Убедитесь, что ключ не истек
  3. Проверьте лимиты запросов
  4. Обратитесь в поддержку через личный кабинет

📊 Лимиты и ограничения​

Какие лимиты запросов у API?​

Тип ключаЗапросов в часЗапросов в деньЗапросов в месяц
Free5050010,000
Basic2002,00050,000
Premium5005,000150,000
Professional1,00010,000300,000
Enterprise5,00050,0001,000,000

Что происходит при превышении лимитов?​

API вернет ошибку 429 Too Many Requests с информацией о времени ожидания:

{
"success": false,
"error": {
"code": 429,
"message": "Превышен лимит запросов",
"details": "Лимит: 60 запросов в минуту. Попробуйте через 45 секунд.",
"retry_after": 45
}
}

Как увеличить лимиты?​

Обратитесь в поддержку через личный кабинет для обсуждения увеличения лимитов.

🎮 Игры и серверы​

Какие игры поддерживает API?​

API поддерживает более 40 типов игр, включая:

  • Minecraft
  • Counter-Strike 2
  • Garry's Mod
  • Rust
  • ARK: Survival Evolved
  • Team Fortress 2
  • И многие другие

Как получить список всех поддерживаемых игр?​

Используйте эндпоинт /api/v1/games:

curl -H "Authorization: Bearer test_key_12345" \
http://138.124.109.53:5000/api/v1/games

Как найти серверы по игре?​

Используйте параметр game_id в запросе:

# Серверы Minecraft (game_id = 30)
curl -H "Authorization: Bearer test_key_12345" \
"http://138.124.109.53:5000/api/v1/servers?game_id=30"

Как получить только онлайн серверы?​

Используйте эндпоинт /api/v1/servers/online:

curl -H "Authorization: Bearer test_key_12345" \
http://138.124.109.53:5000/api/v1/servers/online

📈 Аналитика и статистика​

Как получить статистику сервера?​

Используйте эндпоинт /api/v1/analytics/server/{server_id}:

curl -H "Authorization: Bearer test_key_12345" \
http://138.124.109.53:5000/api/v1/analytics/server/12345

Как получить данные для графика?​

Используйте эндпоинт /api/v1/analytics/chart/{server_id}:

# Данные за последние 24 часа
curl -H "Authorization: Bearer test_key_12345" \
"http://138.124.109.53:5000/api/v1/analytics/chart/12345?hours=24"

Как получить глобальную статистику?​

Используйте эндпоинт /api/v1/analytics/global:

curl -H "Authorization: Bearer test_key_12345" \
http://138.124.109.53:5000/api/v1/analytics/global

🔧 Технические вопросы​

Какой формат ответов у API?​

Все ответы возвращаются в стандартизированном формате JSON:

✅ Успешные ответы​

{
"success": true,
"message": "Операция выполнена успешно",
"data": { ... },
"timestamp": 1640995200.0
}

❌ Ответы с ошибками​

{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Отсутствует или неверный API ключ",
"status_code": 401,
"details": {
"hint": "Добавьте заголовок: Authorization: Bearer YOUR_API_KEY",
"documentation": "/api/v1/docs"
}
},
"timestamp": 1640995200.0
}

Какие HTTP статус-коды использует API?​

API использует стандартизированные HTTP статус-коды:

КодНазваниеОписаниеКод ошибки API
200OKЗапрос выполнен успешно-
201CreatedРесурс создан успешно-
400Bad RequestНекорректный запросVALIDATION_FAILED
401UnauthorizedНеверный API ключUNAUTHORIZED
403ForbiddenНедостаточно правINSUFFICIENT_PERMISSIONS
404Not FoundРесурс не найденRESOURCE_NOT_FOUND
422Unprocessable EntityОшибка валидацииVALIDATION_FAILED
429Too Many RequestsПревышен лимитRATE_LIMIT_EXCEEDED
500Internal Server ErrorВнутренняя ошибкаDATABASE_ERROR

Как обрабатывать ошибки?​

API возвращает детальные ошибки с подсказками:

{
"success": false,
"error": {
"code": "SERVER_NOT_FOUND",
"message": "Сервер не найден (ID: 12345)",
"status_code": 404,
"details": {
"hint": "Проверьте корректность ID сервера",
"documentation": "/api/v1/docs"
}
},
"timestamp": 1640995200.0
}

Как использовать пагинацию?​

Большинство эндпоинтов поддерживают параметры page и limit:

# Страница 2, по 25 элементов
curl -H "Authorization: Bearer test_key_12345" \
"http://138.124.109.53:5000/api/v1/servers?page=2&limit=25"

Как сортировать результаты?​

Используйте параметр sort:

# Сортировка по количеству игроков (убывание)
curl -H "Authorization: Bearer test_key_12345" \
"http://138.124.109.53:5000/api/v1/servers?sort=-players"

🚀 Интеграция и разработка​

Как интегрировать API в мое приложение?​

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

Как кэшировать данные?​

Рекомендуется кэшировать результаты на стороне клиента:

const cache = new Map();

async function getCachedServers(gameId) {
const cacheKey = `servers_${gameId}`;

if (cache.has(cacheKey)) {
return cache.get(cacheKey);
}

const data = await api.get(`/api/v1/servers/game/${gameId}`);
cache.set(cacheKey, data);

// Очистить кэш через 5 минут
setTimeout(() => cache.delete(cacheKey), 5 * 60 * 1000);

return data;
}

Как обрабатывать rate limiting?​

Реализуйте exponential backoff:

async function requestWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fetch(url, options);

if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After') || 60;
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
continue;
}

return response;
} catch (error) {
if (i === maxRetries - 1) throw error;
await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, i)));
}
}
}

Как тестировать ошибки API?​

Используйте встроенные инструменты тестирования:

# Быстрый тест основных ошибок
python quick_error_test.py

# Полное тестирование с новыми категориями
python test_api.py --errors

# Интерактивный режим с тестами ошибок
python test_api.py --interactive

Какие коды ошибок API доступны?​

  • UNAUTHORIZED - Отсутствует или неверный API ключ
  • INSUFFICIENT_PERMISSIONS - Недостаточно прав для операции
  • RESOURCE_NOT_FOUND - Ресурс не найден
  • VALIDATION_FAILED - Ошибка валидации данных
  • RATE_LIMIT_EXCEEDED - Превышен лимит запросов
  • IP_BLOCKED - IP адрес заблокирован
  • DATABASE_ERROR - Ошибка базы данных

🆘 Поддержка​

Как получить помощь?​

  1. Проверьте документацию - большинство вопросов уже освещены
  2. Используйте тестовый ключ для экспериментов
  3. Обратитесь в поддержку через личный кабинет
  4. Присоединяйтесь к сообществу разработчиков

Как сообщить об ошибке?​

  1. Опишите проблему подробно
  2. Укажите используемый API ключ (тип)
  3. Приложите пример запроса и ответа
  4. Укажите версию API (2.0.0)

Как предложить новую функцию?​

Обратитесь в поддержку через личный кабинет с описанием предлагаемой функции и обоснованием необходимости.

📚 Дополнительные ресурсы​

Совет

Если вы не нашли ответ на свой вопрос, обратитесь в поддержку через личный кабинет!