@extends('layouts.vitrine') @section('titre', "API publique") @section('contenu')

API publique Syllabus

Catalogue en lecture seule : labs, banque de quiz officielle, cours. Aucune donnée d'élève.

Authentification

Crée un jeton depuis un compte prof : connexion puis « Mon profil → Jetons de l'API ». Envoie-le dans l'en-tête :

Authorization: Bearer <ton-jeton>

60 requêtes par minute et par jeton (en-têtes X-RateLimit-* sur chaque réponse).

Points d'accès

GET /api/v1/labs

Liste des labs du catalogue.

GET /api/v1/labs/{identifiant}

Détail d'un lab (ex. 08-deux-lan-routeur).

GET /api/v1/quiz

Liste des quiz de la banque officielle (titre, thème, nombre de questions — jamais les questions ni les réponses).

GET /api/v1/quiz/{id}

Détail d'un quiz (métadonnées).

GET /api/v1/cours

Liste des cours du catalogue.

GET /api/v1/cours/{identifiant}

Détail d'un cours, avec son contenu complet.

Exemple

curl -H "Authorization: Bearer <ton-jeton>" \
  https://syllabuslab.fr/api/v1/labs/08-deux-lan-routeur
{
  "data": {
    "identifiant": "08-deux-lan-routeur",
    "titre": "Deux LAN et un routeur",
    "niveau": "decouverte",
    "duree_min": 45,
    "competences": ["adressage-ipv4", "routage-statique"]
  }
}

Spécification OpenAPI (v1.yaml) →

@endsection