Zum Inhalt springen

Konventionen & Fehler

Alle Endpunkte liegen unter https://app.todomino.eu/api. Anfragen und Antworten sind JSON (Content-Type: application/json), sofern nicht anders angegeben. Authentifiziere dich mit einem persönlichen Zugriffstoken.

  • IDs sind UUIDs und werden vom Server generiert.
  • Zeitstempel sind ISO-8601-Zeitpunkte in UTC, z. B. 2026-07-18T09:30:00Z.
  • Fälligkeitsdaten sind ebenfalls Zeitpunkte; der Web-Client speichert sie als Mitternacht UTC des gewählten Tages (2026-08-01T00:00:00Z).
Feld Werte
Aufgaben-/Unteraufgaben-status PENDING, DONE
Aufgaben-priority LOW, NORMAL, HIGH, CRITICAL oder null
Mitglieds-role OWNER, ADMIN, MEMBER

Aufgaben tragen eine version-Nummer. Vollständige Updates (PUT) müssen die zuletzt gelesene Version zurücksenden; hat jemand anderes die Aufgabe zwischenzeitlich geändert, antwortet die API mit 409 Conflict — lies die Aufgabe erneut und wende deine Änderung noch einmal an.

Mutierende Endpunkte für Aufgaben, Unteraufgaben und Listen akzeptieren einen optionalen X-Op-Id-Header mit einer clientseitig generierten UUID. Dieselbe Op-Id wird genau einmal ausgeführt: Wiederholungen (z. B. ein erneuter Versuch nach einer verlorenen Antwort) werden mit demselben Status bestätigt, ohne erneut ausgeführt zu werden — Offline-Clients können gepufferte Operationen so gefahrlos übertragen. Erstell-Operationen, die mit einer Op-Id gesendet werden, müssen zusätzlich eine clientseitig generierte id im Body tragen — der Client kennt so bereits jede Id, die eine Wiederholung brauchen würde. Lösch-Operationen sind von Natur aus idempotent und brauchen keine Op-Id.

Status Bedeutung
400 Fehlerhafte Anfrage (fehlendes Feld, ungültiger Wert)
401 Fehlendes oder ungültiges Token / nicht angemeldet
403 Authentifiziert, aber deine Rolle erlaubt diese Aktion nicht
404 Nicht gefunden — wird auch für Arbeitsbereiche zurückgegeben, in denen du kein Mitglied bist
409 Konflikt: doppelter Name, Versionskonflikt oder doppelter Anhang
413 Speicherlimit des Arbeitsbereichs erreicht

Fehlerantworten sind Spring Problem Details; der HTTP-Status ist der Vertrag, der Text im Body ist informativ und kann sich ändern.