{% extends 'base.html.twig' %} {% block title %}API Documentation - E-Ticket{% endblock %} {% block description %}Documentation de l'API E-Ticket pour les organisateurs et l'application scanner.{% endblock %} {% block body %}
Documentation complete de l'API REST pour les organisateurs. Gestion des evenements, commandes, billets et scan.
Format
JSON (application/json)
Authentification
ETicket-Email + ETicket-JWT
https://ticket.e-cosplay.fr{{ env.baseUrl }}
{{ env.description }}
L'authentification (/api/auth/login) est commune aux deux environnements : https://ticket.e-cosplay.fr/api/auth/login
Toutes les routes (sauf /api/auth/login) necessitent deux headers :
| Header | Description | Exemple |
|---|---|---|
| ETicket-Email | Email de l'organisateur | orga@example.com |
| ETicket-JWT | Token JWT (obtenu via /api/auth/login) | eyJhbGciOiJIUzI1NiIs... |
Reponse standard
{
"success": true,
"data": { ... },
"error": null
}
Reponse erreur
{
"success": false,
"data": null,
"error": "Message d'erreur explicite"
}
{{ section.description }}
{% endif %} {% for endpoint in section.endpoints %}{{ endpoint.path }}
{% else %}
/api/sandbox|/api/live{{ endpoint.path|replace({'/api': ''}) }}
{% endif %}
{{ endpoint.description }}
{% if endpoint.headers|length > 0 %}Headers requis
Parametres
| Nom | Type | Requis | Description |
|---|---|---|---|
| {{ name }} | {{ param.type }} | {% if param.required %} oui {% else %} non{% if param.default is defined %} ({{ param.default }}){% endif %} {% endif %} | {{ param.description }} |
Body (JSON)
{
{% for name, field in endpoint.request %}
"{{ name }}": {{ field.example is defined ? '"' ~ field.example ~ '"' : '"..."' }}{{ not loop.last ? ',' : '' }} // {{ field.type }}{% if field.required %} (requis){% endif %}
{% endfor %}
}
Reponse (200)
{
{% for name, field in endpoint.response %}
"{{ name }}": {{ field.example }} // {{ field.type }}{{ not loop.last ? ',' : '' }}
{% endfor %}
}
Codes de reponse
L'API est limitee a 60 requetes par minute par cle API. En cas de depassement, un code 429 est retourne.
Headers de rate limit
| X-RateLimit-Limit | Nombre max de requetes par fenetre |
| X-RateLimit-Remaining | Requetes restantes dans la fenetre courante |
| Retry-After | Secondes avant la prochaine fenetre (si 429) |