API Développeur
Aperçu de l'API
Les clés Bot couvrent les personnages, campagnes et équipages. Les clients mobiles first-party utilisent Firebase sur /api/app/v1/groups pour la sync versionnée des campagnes et équipages.
Documentation interactive
Explorez la spécification complète de l'API avec notre interface Swagger interactive. Testez les endpoints, consultez les schémas requête/réponse et comprenez toutes les capacités de l'API.
Ouvrir Swagger UIClé API
Les endpoints de l'API Bot nécessitent une authentification via l'en-tête X-Bot-API-Key.
# Exemple de requête
curl -H "X-Bot-API-Key: your-bot-api-key" \
"https://jollyrogenerator.com/api/bot/characters?discordId=123456789"
Contactez-nous pour obtenir une clé API pour votre intégration.
Les routes App Groups sous /api/app/v1 utilisent Authorization: Bearer avec un jeton Firebase. Elles sont privées et hors CORS public.
Limites de débit
Les limites de débit sont appliquées par clé API pour garantir une utilisation équitable et la stabilité du système.
| Type d'opération | Limite |
|---|---|
| Lecture (GET) | 100 requêtes/minute |
| Écriture (POST, PATCH, DELETE) | 30 requêtes/minute |
Les en-têtes de limite de débit (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) sont inclus dans toutes les réponses.
Endpoints
Aperçu ci-dessous. Swagger liste la surface complète, y compris les schémas App Groups.
Personnages (Bot)
/api/bot/charactersLister tous les personnages d'un utilisateur Discord
/api/bot/characters/:idObtenir les détails complets d'un personnage, y compris les objets et les capacités
/api/bot/characters/:idMettre à jour les PV, la chance, l'argent ou les scores de caractéristiques
/api/bot/characters/:id/inventoryObtenir l'inventaire du personnage classé par type
/api/bot/characters/:id/inventoryAjouter un nouvel objet à l'inventaire du personnage
/api/bot/characters/:id/inventory/:itemIdRetirer un objet de l'inventaire du personnage
/api/bot/characters/:id/advanceMonter de niveau avec un jet de PV automatique
Campagnes (Bot)
/api/bot/campaignsLister les campagnes d'un utilisateur Discord
/api/bot/campaignsCréer une campagne avec l'utilisateur comme MJ
/api/bot/campaigns/:idObtenir les détails, membres et personnages d'une campagne
/api/bot/campaigns/join/:inviteCodeRejoindre une campagne avec un code d'invitation
/api/bot/campaigns/:id/charactersAssigner un personnage possédé à une campagne
/api/bot/campaigns/:id/membersLister les membres d'une campagne
Équipages (Bot)
/api/bot/crewsLister les équipages d'un utilisateur Discord
/api/bot/crewsCréer un équipage avec des permissions égales
/api/bot/crews/:idObtenir les détails, membres et personnages d'un équipage
/api/bot/crews/join/:inviteCodeRejoindre un équipage avec un code d'invitation
/api/bot/crews/:id/notesLire ou mettre à jour les notes partagées de l'équipage
/api/bot/crews/:id/leaveQuitter un équipage
App Groups (Firebase)
/api/app/v1/groups?type=…Lister les campagnes ou équipages de l'utilisateur connecté
/api/app/v1/groupsCréer une campagne ou un équipage avec une enveloppe de mutation
/api/app/v1/groups/joinRejoindre avec un code d'invitation et clientMutationId
/api/app/v1/groups/:idRécupérer un instantané de groupe versionné
/api/app/v1/groups/:idMettre à jour les champs du groupe contre baseRevision
/api/app/v1/groups/:id/activityActivité paginée par curseur pour un groupe
Codes d'erreur
Toutes les erreurs renvoient une réponse JSON avec un code d'erreur pour un traitement facile.
| Code | Description |
|---|---|
UNAUTHORIZED | Authentification requise |
INVALID_API_KEY | Clé API invalide fournie |
OWNERSHIP_DENIED | L'utilisateur ne possède pas la ressource |
RATE_LIMITED | Limite de débit dépassée |
NOT_FOUND | Ressource introuvable |
CHARACTER_NOT_FOUND | Personnage introuvable |
ITEM_NOT_FOUND | Objet introuvable |
CAMPAIGN_NOT_FOUND | Campagne introuvable |
NOT_CAMPAIGN_MEMBER | L'utilisateur n'est pas membre de la campagne |
CREW_NOT_FOUND | Équipage introuvable |
NOT_CREW_MEMBER | L'utilisateur n'est pas membre de l'équipage |
REVISION_CONFLICT | baseRevision obsolète sur une écriture App Group |
VALIDATION_ERROR | Échec de la validation de la requête |