Formations
CRUD complet sur le catalogue de formations. Requiert le rôle ADMIN ou CREATOR.
Endpoints disponibles
- GET
/api/v1/courses - POST
/api/v1/courses - GET
/api/v1/courses/:id - PATCH
/api/v1/courses/:id - DELETE
/api/v1/courses/:id
Schéma Course
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string | Non | Identifiant unique (crs_...) |
| title | string | Oui | Titre de la formation (max 200 chars) |
| description | string | Oui | Description longue (markdown supporté) |
| price | number | Oui | Prix en centimes (49900 = 499,00 €) |
| currency | string | Oui | Code ISO 4217 (EUR, USD...) |
| status | enum | Non | DRAFT | PUBLISHED | ARCHIVED |
| duration | number | Non | Durée en heures |
| level | enum | Non | BEGINNER | INTERMEDIATE | ADVANCED | EXPERT |
| language | string | Non | Code BCP 47 (fr, en...) |
| tags | string[] | Non | Tags pour la recherche |
| createdAt | string | Non | ISO 8601 — lecture seule |
| updatedAt | string | Non | ISO 8601 — lecture seule |
GET/courses
Retourne la liste paginée des formations du tenant. Paramètres query : page, perPage, status, q (recherche).
Lister les formations · Python
Lister les formations · cURL / Shell
Lister les formations · TypeScript
POST/courses
Crée une formation avec le statut DRAFT. Requiert ADMIN ou CREATOR.
Créer une formation · Python
Créer une formation · cURL / Shell
Créer une formation · TypeScript
PATCH/courses/:id
Mise à jour partielle (partial update). Envoyer uniquement les champs à modifier. Pour publier : passer status: "PUBLISHED".
Publier une formation · cURL / Shell
Réponses d'erreur
Exemples d'erreurs · JSON