Technique · API
APIs par catégorie
Référence des endpoints HTTP. La majorité exige une session membre ; les routes staff requièrent des rôles Atlas.
Catégorie A — Utilitaires publics
| Endpoint | Méthode | Usage |
/api/resolve?code= | GET | Résolution lien court + compteur clics |
/api/leave | POST | Tracking abandon interstitiel (sendBeacon) |
/api/caverne-chrono?action=status | GET | Statut chrono global |
/api/chrono-qr | GET | Accès QR mobile chrono |
/api/affiliation-qr | GET | QR parrainage |
/api/avatar-proxy | GET | Proxy avatars |
/api/site-version | GET | Version déploiement (détection cache client) |
/api/gooning-battle?action=public-list | GET | Battles publiques en attente (pseudos masqués) |
/api/gooning-battle?action=public-spectator-list | GET | Battles publiques spectables (waiting + active) |
/api/gooning-battle?action=public-spectator-watch | GET | Détail spectateur (battle_id ou join_code) |
/api/gooning-battle?action=public-spectator-react | POST | Réaction emoji spectateur (JSON body) |
Catégorie B — Membres authentifiés
| Domaine | Endpoints principaux |
| Auth | /api/auth (login, register, logout, status) |
| Contenu | links, tags, categories, boards, voting, report |
| Social | friends, conversations, follows, presence |
| Forum | forum, round-table, table-cul |
| Économie | wallet, shop, marketplace |
| Progression | gooning, gooning-battle (battle-create, battle-join, battle-start, battle-status, battle-leave, battle-end, regenerate-code, pending-invites, battle-invite-friend, battle-invite-dismiss, battle-show-name-public), registre-gooning, relics, events |
| Collections | collections, image-collections |
| Uploads | upload, uploads — voir détail ci-dessous |
| Recrutement | waitlist-track |
Uploads — actions principales (/api/uploads.php)
| Action | Méthode | Usage |
posting-status | GET | Droit d'envoi, charte |
accept-charter | POST | Acceptation charte inline |
submit / submit-batch | POST | Goutte unique / dégorgeur |
submit-quick | POST | Envoi rapide (titre+URL) |
submit-standby | POST | Dépôt stand-by coffre |
save-incomplete-draft | POST | Sauvegarde brouillon partiel |
complete-quick | POST | Complétion → pending |
complete-standby-community | POST | Complétion pool entraide |
my-submissions | GET | Suivi uploads membre |
quick-submissions / standby-submissions | GET | Brouillons à compléter |
standby-community | GET | Pool communautaire |
Registre — signalement (/api/registre-gooning.php)
| Action | Méthode | Usage |
report_dead | POST | Signaler lien mort (idempotent, XP possible) |
Recrutement (/api/waitlist-track.php)
| Action | Acteur |
public_get, public_message, public_cancel | Candidat (token) |
staff_get, staff_message | Staff |
staff_approve, staff_reject, staff_ban_ip, staff_ban_username | Staff |
Catégorie C — Staff / Atlas
| Préfixe | Exemples |
/api/atlas-admin/* | users, sanctions, economy, triage, forum-moderation, site-settings |
/api/atlas-moderation/* | overview, moderation, ban-requests, verifications |
/api/atlas-chancellerie/* | cases, actions, packs |
/api/atlas-animateur/* | events, lore, seasons, calendar |
/api/pending/* | uploads, team, groups, dead-links |
Conventions
- Réponses JSON via
sendJSON() / sendError()
- CSRF requis sur POST sensibles (header
X-CSRF-Token)
- Rate limiting global et par scope sur les endpoints sensibles
- Inventaire des routes : revue mensuelle côté ops (voir Exploitation)
Exemples curl
curl -s "https://lacavernechaude.fr/api/resolve?code=ABC123"
curl -s -X POST "https://lacavernechaude.fr/api/leave" -d "code=ABC123"
curl -s "https://lacavernechaude.fr/api/caverne-chrono?action=status"