Conventions et erreurs
URL de base et format
Section intitulée « URL de base et format »Tous les endpoints se trouvent sous https://app.todomino.eu/api. Les
requêtes et les réponses sont au format JSON (Content-Type: application/json),
sauf mention contraire. Authentifie-toi avec un
jeton d’accès personnel.
Identifiants et horodatages
Section intitulée « Identifiants et horodatages »- Les IDs sont des UUID, générés par le serveur.
- Les horodatages sont des instants ISO-8601 en UTC, p. ex.
2026-07-18T09:30:00Z. - Les dates d’échéance sont aussi des instants ; le client web les
enregistre comme minuit UTC du jour choisi (
2026-08-01T00:00:00Z).
Énumérations
Section intitulée « Énumérations »| Champ | Valeurs |
|---|---|
status d’une tâche/sous-tâche |
PENDING, DONE |
priority d’une tâche |
LOW, NORMAL, HIGH, CRITICAL, ou null |
role d’un membre |
OWNER, ADMIN, MEMBER |
Verrouillage optimiste
Section intitulée « Verrouillage optimiste »Les tâches portent un numéro de version. Les mises à jour complètes
(PUT) doivent renvoyer la version que tu as lue en dernier ; si quelqu’un
d’autre a modifié la tâche entre-temps, l’API répond 409 Conflict —
relis la tâche et réapplique ta modification.
Opérations hors ligne
Section intitulée « Opérations hors ligne »Les endpoints de mutation des tâches, sous-tâches et listes acceptent un
en-tête optionnel X-Op-Id portant un UUID généré côté client. Un même op
id est exécuté exactement une fois : les rejeux (p. ex. une nouvelle
tentative après une réponse perdue) sont acquittés avec le même statut sans
être réexécutés, si bien que les clients hors ligne peuvent pousser leurs
opérations en file d’attente en toute sécurité. Les créations envoyées avec
un op id doivent aussi porter un id généré côté client dans le corps —
le client connaît ainsi déjà chaque id dont un rejeu aurait besoin. Les
suppressions sont idempotentes par nature et n’ont pas besoin d’op id.
| Statut | Signification |
|---|---|
400 |
Requête mal formée (champ manquant, valeur invalide) |
401 |
Jeton manquant ou invalide / non connecté |
403 |
Authentifié, mais ton rôle ne permet pas cette action |
404 |
Introuvable — renvoyé aussi pour les espaces de travail dont tu n’es pas membre |
409 |
Conflit : nom en double, version obsolète ou pièce jointe en double |
413 |
Limite de stockage de l’espace de travail atteinte |
Les réponses d’erreur sont des « problem details » Spring ; le statut HTTP constitue le contrat, le texte du corps est informatif et peut changer.
