❓ Часто задаваемые вопросы
Найдите ответы на самые популярные вопросы о ServerCon API.
🔑 Аутентификация и ключи
Как получить API ключ?
- Зарегистрируйтесь на платформе ServerCon
- Войдите в личный кабинет
- Перейдите в раздел "API" в настройках профиля
- Создайте новый API ключ с необходимыми разрешениями
- Скопируйте ключ - он больше не будет показан в интерфейсе
Можно ли использовать тестовый ключ в продакшене?
Нет, тестовый ключ test_key_12345 предназначен только для разработки и тестирования. Для продакшена необходимо получить полноценный API ключ.
Как проверить валидность API ключа?
Используйте эндпоинт /api/v1/stats для проверки вашего ключа:
curl -H "Authorization: Bearer ваш_api_ключ" \
http://138.124.109.53:5000/api/v1/stats
Что делать, если API ключ не работает?
- Проверьте правильность заголовка
Authorization: Bearer ваш_ключ - Убедитесь, что ключ не истек
- Проверьте лимиты запросов
- Обратитесь в поддержку через личный кабинет
📊 Лимиты и ограничения
Какие лимиты запросов у API?
| Тип ключа | Запросов в час | Запросов в день | Запросов в месяц |
|---|---|---|---|
| Free | 50 | 500 | 10,000 |
| Basic | 200 | 2,000 | 50,000 |
| Premium | 500 | 5,000 | 150,000 |
| Professional | 1,000 | 10,000 | 300,000 |
| Enterprise | 5,000 | 50,000 | 1,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 |
|---|---|---|---|
| 200 | OK | Запрос выполнен успешно | - |
| 201 | Created | Ресурс создан успешно | - |
| 400 | Bad Request | Некорректный запрос | VALIDATION_FAILED |
| 401 | Unauthorized | Неверный API ключ | UNAUTHORIZED |
| 403 | Forbidden | Недостаточно прав | INSUFFICIENT_PERMISSIONS |
| 404 | Not Found | Ресурс не найден | RESOURCE_NOT_FOUND |
| 422 | Unprocessable Entity | Ошибка валидации | VALIDATION_FAILED |
| 429 | Too Many Requests | Превышен лимит | RATE_LIMIT_EXCEEDED |
| 500 | Internal 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 в мое приложение?
- Получите API ключ
- Изучите документацию по нужным эндпоинтам
- Используйте примеры кода для вашего языка программирования
- Обрабатывайте ошибки и лимиты запросов
Как кэшировать данные?
Рекомендуется кэшировать результаты на стороне клиента:
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 - Ошибка базы данных
🆘 Поддержка
Как получить помощь?
- Проверьте документацию - большинство вопросов уже освещены
- Используйте тестовый ключ для экспериментов
- Обратитесь в поддержку через личный кабинет
- Присоединяйтесь к сообществу разработчиков
Как сообщить об ошибке?
- Опишите проблему подробно
- Укажите используемый API ключ (тип)
- Приложите пример запроса и ответа
- Укажите версию API (2.0.0)
Как предложить новую функцию?
Обратитесь в поддержку через личный кабинет с описанием предлагаемой функции и обоснованием необходимости.
📚 Дополнительные ресурсы
Если вы не нашли ответ на свой вопрос, обратитесь в поддержку через личный кабинет!