API Documentation
Интегрируйте свой проект с нашей платформой используя простые и мощные API методы.
Голосование
Вы можете настроить Webhook для получения уведомлений в реальном времени о голосах за ваш проект. Мы будем отправлять POST запрос на указанный вами URL.
POST {YOUR_WEBHOOK_URL}
JSON
{
"type": "vote",
"project_id": 123,
"username": "PlayerName",
"timestamp": 1672531200000,
"signature": "sha256_hash"
}Получение информации о проекте
Публичный API для получения актуального статуса серверов и информации о проекте. Не требует авторизации.
GET /api/project/:id
JSON
{
"id": 123,
"name": "My Server",
"rating": 450,
"servers": [
{
"name": "Survival",
"ip": "play.example.com",
"port": 25565,
"online": 150,
"max_players": 1000
}
]
}Проверка подписи Webhook
Для безопасности мы подписываем каждый webhook-запрос, используя ваш секретный ключ проекта. Вы можете проверить подпись, чтобы убедиться, что запрос действительно отправлен нашим сервисом.
Алгоритм подписи
- Подпись передается в заголовке
X-Signature - Используется алгоритм HMAC SHA256
- В качестве ключа используется Secret Key вашего проекта (доступен в настройках)
- Подписывается тело запроса (Raw JSON Body)
Пример проверки (Node.js)
const crypto = require('crypto');
// payload - это сырое тело запроса (string)
// signature - заголовок X-Signature
// secret - ваш Secret Key из настроек проекта
function verifySignature(payload, signature, secret) {
const hash = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return hash === signature;
}