{# Onglet Développeur - Guide API en 3 étapes #} {% embed '_molecules/card/card.html.twig' with { title: 'API Développeur', subtitle: 'Intégrez Bubul dans vos applications avec votre clé API personnelle', icon: 'key', iconColor: 'primary' } %} {% block body %}
{# ========== ÉTAPE 1 : Clé API ========== #}
1

Générer ma clé API

Votre clé personnelle pour authentifier vos requêtes.

{% if apiKeys is empty %} {% include '_atoms/button/button.html.twig' with { label: 'Générer ma clé', variant: 'primary', icon: 'key', attr: { 'data-action': 'click->settings--api-keys#createKey', 'data-settings--api-keys-target': 'createButton' } } only %} {% else %} {% set key = apiKeys|first %}
{% include '_atoms/badge/badge.html.twig' with { label: 'Active', variant: 'success', dot: true, size: 'sm' } only %} {{ key.name }} {{ key.maskedKey }}
{% if key.lastUsedAt %} Utilisée {{ key.lastUsedAt|format_datetime('short', 'short', locale='fr') }} {% else %} Jamais utilisée {% endif %}
{% endif %}
{# ========== ÉTAPE 2 : Requête CURL ========== #}
2

Tester avec une requête

Utilisez cette commande pour vérifier votre clé.

curl -X GET {{ app.request.schemeAndHttpHost }}/api/moodlev5/me \ -H "X-API-Key: bubul_sk_votre_cle"
{# ========== ÉTAPE 3 : Résultat attendu ========== #}
3

Résultat attendu

Si votre clé est valide, vous recevrez cette réponse.

{ "success": true, "data": { "user": { "id": 123, "email": "vous@example.com", "first_name": "Prénom", "last_name": "Nom", "roles": ["ROLE_USER"], "company": { "uuid": "abc-123", "name": "Mon Entreprise", "has_moodle_config": true, "has_active_contract": true } } } }
{# ========== MODALS ========== #} {# Modal d'affichage de la clé créée - Design atomique #} {# Modal de confirmation de suppression - Utilise la molécule modal avec variant danger #}
{% endblock %} {% endembed %}