rps-royale/docs/API_REFERENCE.md
Ubuntu 52565bf1a3 Phase 0: docs, CI/CD, Tailwind config, and Forgejo workflow
- Add Forgejo Actions deploy workflow
- Add documentation (ARCHITECTURE, DEPLOYMENT, SMART_CONTRACT, API_REFERENCE)
- Add Tailwind and PostCSS configs for web app
- Configure Git remote for Forgejo

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 02:19:01 +00:00

2.1 KiB

API Reference — The Arena RPS Royale

Base URL

  • Production : https://api.jeu.cosmolan.fr
  • Local : http://localhost:3001

REST Endpoints

GET /api/health

Vérification de santé du serveur.

Response:

{ "status": "ok", "timestamp": "2026-05-24T10:00:00.000Z" }

GET /api/leaderboard

Classement mondial des 50 meilleurs joueurs.

Response:

[
  {
    "rank": 1,
    "address": "0x...",
    "name": "Player1",
    "rating": 1450,
    "wins": 12,
    "losses": 3,
    "profit": "0.45"
  }
]

GET /api/player/:address

Profil détaillé d'un joueur + historique des 20 derniers matchs.

GET /api/history/:address

Historique complet des matchs d'un joueur (50 derniers).

Socket.io Events

Client → Server

Event Payload Description
lobby:join - Rejoint le lobby et reçoit la liste des tables
lobby:leave - Quitte le lobby
match:request { address: string, betAmount: string } Demande un matchmaking
match:commit { matchId, commitHash, address } Envoie le hash du commit
match:reveal { matchId, choice, nonce, address } Révèle le choix et le nonce
match:spectate matchId: string Rejoint une table en spectateur

Server → Client

Event Payload Description
lobby:tables Table[] Liste des tables actives
match:found MatchState Match trouvé, transition vers l'arène
match:commitPhase matchId Début de la phase de commit
match:commitReceived { matchId, playerAddress } Un joueur a commité
match:suspenseStart matchId Début de la phase de suspense (animations)
match:revealPhase matchId Début de la phase de reveal
match:revealReceived { matchId, playerAddress } Un joueur a révélé
match:result { matchId, winner, p1Choice, p2Choice, payout } Résultat final
match:error message: string Erreur dans le match
match:timeout matchId Timeout déclaré

Types partagés

Voir packages/shared/src/types.ts pour les interfaces TypeScript complètes.