API Vote — Documentation

Endpoints publics, exemples d’appels et formats de réponses

Version 1.0

Introduction

L’API de vote est publique et appelable depuis l’extérieur. Aucun token ni session n’est requis.

IP requise(IPV4) : le statut de vote est déterminé par l’IP du client (cooldown 90 minutes). Pour éviter toute ambiguïté, l’IP est passée directement dans l’URL : /api/vote/{serverId}/status/{ipUser}. Aucun header spécial n’est nécessaire.

Endpoints

GET https://server-pulse.net/api/vote/{serverId}/status/{ipUser}
Vérifie si l’IP {ipUser} peut voter pour le serveur {serverId} (cooldown 90 minutes). Aucun header requis.

Réponse (200)

{
  "can_vote": true,
  "message": "Vous pouvez voter maintenant",
  "next_vote_at": null,
  "cooldown_minutes": 90
}

Exemples

cURL — Statut de vote (IP dans l’URL)
curl -X GET "https://server-pulse.net/api/vote/28/status/127.0.0.1" \
  -H "Accept: application/json"
PHP — testVoteStatus() (IP dans l’URL)
<?php
function testVoteStatus(string $baseUrl, int $serverId, string $ip): array {
    $url = rtrim($baseUrl, '/') . "/api/vote/{$serverId}/status/{$ip}";
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => ['Accept: application/json'],
    ]);
    $res = curl_exec($ch);
    if ($res === false) throw new \RuntimeException('cURL error: ' . curl_error($ch));
    curl_close($ch);
    $data = json_decode($res, true);
    return is_array($data) ? $data : ['can_vote' => false, 'message' => 'Réponse invalide'];
}

Codes & retours possibles

CodeStatutExemple
200OK{ "success": true, "message": "Vous pouvez voter maintenant" }
200OK{ "success": false, "message": "Vous pourrez voter à nouveau dans X minutes", "next_vote_at": "..." }