Zum Inhalt

API-Referenz

Die API-Dokumentation beschreibt die wichtigsten Schnittstellen des Dokumentenmanagers. Sie richtet sich primär an Entwickler und technisch versierte Dritte, die nachvollziehen möchten, welche Endpunkte existieren, wie sie sich semantisch unterscheiden und welche Arten von Antworten oder Fehlerfällen auftreten können. Die Live-Quelle der Wahrheit bleibt die automatische OpenAPI-Spezifikation, die über FastAPI generiert wird. Diese Seite verdichtet jedoch die wesentlichen Schnittstellen und ordnet sie fachlich ein.

OpenAPI

  • Swagger UI: GET /docs
  • OpenAPI JSON: GET /openapi.json

Dass FastAPI automatisch eine OpenAPI-Beschreibung erzeugt, ist nicht nur bequem, sondern ein methodischer Vorteil. Die API ist dadurch nicht bloß implizit im Code versteckt, sondern formal dokumentierbar und testbar.

Überblick über wichtige Routen

Web-Routen (HTML)

Methode Pfad Zweck
GET /dashboard Zentrale Startseite nach Login
GET /upload Upload-Formular
GET /documents Dokumentliste
GET /documents/{id} Detailansicht eines Dokuments
GET /search Volltext- und Filter-Suche
GET /favorites Favoritenübersicht
GET /trash Papierkorb

Upload- und Dokumentrouten

Methode Pfad Zweck
POST /upload-web Upload aus Web-Formular
POST /upload Upload mit JSON-Response
POST /upload-web/duplicate/commit Duplikat-Upload bewusst übernehmen
POST /upload-web/duplicate/discard Zwischengespeicherten Upload verwerfen

Debug- und Hilfsrouten

Methode Pfad Zweck
POST /debug-ocr/test OCR-Test für PDF, Bild oder DOCX

Authentifizierung und Zugriff

Die Anwendung arbeitet mit Benutzerkonten, Verifikation und optionaler MFA. Daraus ergibt sich, dass nicht jeder Endpunkt öffentlich sinnvoll nutzbar ist. Je nach Router und Funktion werden Authentifizierung und Benutzerkontext vorausgesetzt. Für API-orientierte Nutzung ist deshalb immer zu prüfen, ob Cookies, Session-Mechanismen oder Token-basierte Zugriffe relevant sind.

Beispiel: OCR-Debug-Endpunkt

curl -X POST "http://127.0.0.1:8000/debug-ocr/test" \
  -H "accept: application/json" \
  -F "file=@sample.pdf"

Typische Erfolgsausgabe

{
  "filename": "sample.pdf",
  "pages": 3,
  "extracted_text_preview": "Dies ist ein Beispieltext ..."
}

Typische Fehlerfälle

{
  "detail": "Unsupported file type"
}
{
  "detail": "OCR dependencies not available"
}

Beispielhafte semantische Request-/Response-Muster

Upload (JSON-orientiert)

Request: Multipart-Datei mit optionalen Metadaten

Mögliche Erfolgsausgabe:

{
  "id": 42,
  "filename": "Vertrag.pdf",
  "status": "created",
  "duplicate_detected": false
}

Möglicher Duplikatfall:

{
  "status": "pending_decision",
  "duplicate_detected": true,
  "pending_upload_id": 17
}

Diese Art von Response ist fachlich wertvoll, weil der Client nicht nur „ja oder nein“ erhält, sondern den nächsten sinnvollen Entscheidungspfad.

Dokumentliste

[
  {
    "id": 1,
    "filename": "Rechnung_2026.pdf",
    "mime_type": "application/pdf",
    "is_favorite": true,
    "is_deleted": false
  },
  {
    "id": 2,
    "filename": "Vertrag.docx",
    "mime_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    "is_favorite": false,
    "is_deleted": false
  }
]

Fehlercodes und Validierungslogik

Eine brauchbare API zeigt nicht nur Glücksfälle, sondern auch ihr Verhalten an der Kante. Für den Dokumentenmanager sind insbesondere folgende Fehlerklassen relevant:

HTTP-Code Bedeutung Typischer Auslöser
400 Bad Request Fehlende oder ungültige Eingaben
401 Unauthorized Nicht authentifizierter Zugriff
403 Forbidden Authentifiziert, aber ohne Berechtigung
404 Not Found Dokument oder Ressource existiert nicht
409 Conflict Konflikte, z. B. bei Dubletten oder Statuswechseln
422 Validation Error FastAPI/Pydantic-Validierungsfehler
500 Internal Server Error Unerwarteter Serverfehler

Warum diese Fehlerdokumentation wichtig ist

Viele Projektdokumentationen nennen nur die Existenz von Endpunkten. Für Entwickler ist aber entscheidend, welche Verträge zwischen Client und Server gelten. Fehlercodes sind Teil dieses Vertrags. Sie zeigen, ob das System sauber zwischen Eingabefehler, Berechtigungsproblem und interner Störung unterscheidet.

API als Teil der Wartbarkeit

Die API des Dokumentenmanagers ist nicht nur eine externe Schnittstelle, sondern auch ein internes Strukturierungswerkzeug. Selbst wenn Endanwender überwiegend mit HTML-Seiten arbeiten, führt die klare Trennung von Routen und Verantwortlichkeiten dazu, dass das System testbarer und erweiterbarer wird. Eine gut dokumentierte API ist daher kein Luxus, sondern ein Wartbarkeitsgewinn.