API-Dokumentation

Technische Referenz für die Resolflow REST-API und WebSocket-Integration

Interne API-Referenz

Diese Dokumentation beschreibt die interne REST-API von Resolflow, um zu verstehen, wie die Plattform funktioniert. Resolflow ist eine eigenständige Anwendung, keine Plattform-API für Drittanbieter-Integrationen. Wenn Sie programmatisch mit Resolflow interagieren müssen, verwenden Sie stattdessen das MCP-Protokoll.

API-Überblick

Architektur und Funktionen

RESTful-Design

Standard-HTTP-Methoden (GET, POST, PATCH, DELETE)

Echtzeit-Updates

WebSocket für Live-Benachrichtigungen

JSON-Antworten

Konsistentes Datenformat

Authentifizierung

JWT-basierte Authentifizierung mit dualen Tokens

Token-System

Zugriffstoken
15 Minuten

Kurzlebiges Token, in einem HTTP-only-Cookie gespeichert. Wird für API-Anfragen verwendet.

Aktualisierungstoken
7 Tage

Langlebiges Token zum Abrufen neuer Zugriffstoken ohne erneute Anmeldung.

# Anmelden, um Tokens zu erhalten

POST /api/auth/login
Content-Type: application/json

{
  "email": "[email protected]",
  "password": "yourpassword"
}

Response:
{
  "user": {
    "id": "uuid",
    "email": "[email protected]",
    "name": "John Doe"
  },
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}

# Zugriffstoken in Anfragen verwenden

GET /api/workspaces
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Kern-API-Endpunkte

Hauptressourcen und -operationen

Authentifizierung

POST
/api/auth/register

Neues Konto erstellen

POST
/api/auth/login

Anmeldung mit E-Mail/Passwort

POST
/api/auth/refresh

Neues Zugriffstoken erhalten

POST
/api/auth/logout

Tokens löschen und Sitzung beenden

GET
/api/auth/me

Aktuelle Benutzerinfos abrufen

Arbeitsbereiche

GET
/api/workspaces

Alle Arbeitsbereiche auflisten

GET
/api/workspaces/:id

Arbeitsbereichsdetails abrufen

POST
/api/workspaces

Neuen Arbeitsbereich erstellen

PATCH
/api/workspaces/:id

Arbeitsbereich aktualisieren

DELETE
/api/workspaces/:id

Arbeitsbereich löschen

Projekte

GET
/api/workspaces/:workspaceId/projects

Projekte im Arbeitsbereich auflisten

POST
/api/workspaces/:workspaceId/projects

Projekt erstellen

PATCH
/api/projects/:id

Projekteinstellungen aktualisieren

Aufgaben & Todos

GET
/api/projects/:projectId/tasks

Aufgaben auflisten

POST
/api/projects/:projectId/tasks

Aufgabe erstellen

GET
/api/tasks/:taskId/todos

Todos für Aufgabe auflisten

PATCH
/api/todos/:id

Todo-Status aktualisieren

Agenten & Verbindungen

GET
/api/workspaces/:workspaceId/agents

MCP-Agenten auflisten

POST
/api/projects/:projectId/tokens

MCP-Token generieren

GET
/api/workspaces/:workspaceId/repos

Verbundene GitHub-Repos auflisten

Orchestrator

POST
/api/orchestrator/suggest-tasks

KI-gestützte Aufgabengenerierung

GET
/api/orchestrator/inbox

Orchestrator-Nachrichten abrufen

POST
/api/orchestrator/ask

Orchestrator um Rat fragen

Berichte & Analysen

GET
/api/projects/:projectId/reports

Berichte auflisten

GET
/api/reports/:id

Berichtsdetails abrufen

WebSocket-Echtzeit-Updates

Live-Benachrichtigungen und Datensynchronisation

Verbinden Sie sich mit dem WebSocket-Server für Echtzeit-Updates zu Aufgaben, Todos, Orchestrator-Nachrichten und Berichten.

# Mit WebSocket verbinden

// Send authentication
{
  "type": "auth",
  "token": "your-access-token"
}

// Subscribe to workspace updates
{
  "type": "subscribe",
  "workspaceId": "workspace-uuid"
}

// Receive updates
{
  "type": "task_updated",
  "data": {
    "taskId": "uuid",
    "status": "in_progress",
    "updatedBy": "agent-name"
  }
}

Ereignistypen

task_created

Neue Aufgabe hinzugefügt

task_updated

Aufgabenstatus geändert

todo_updated

Todo-Fortschrittsaktualisierung

orchestrator_message

Neue Anleitung von der KI

report_generated

Neuer Analysebericht

loop_signal

Festgefahrener Agent erkannt

Beispiel: Aufgabe erstellen

Vollständiger Anfrage- und Antwortablauf

Anfrage

POST /api/projects/550e8400-e29b-41d4-a716-446655440000/tasks
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json

{
  "title": "Add dark mode support",
  "description": "Implement dark mode toggle with system preference detection",
  "type": "feature",
  "priority": "medium"
}

Antwort (201 Created)

{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "title": "Add dark mode support",
  "description": "Implement dark mode toggle with system preference detection",
  "type": "feature",
  "priority": "medium",
  "status": "not_started",
  "projectId": "550e8400-e29b-41d4-a716-446655440000",
  "createdBy": "user-uuid",
  "createdAt": "2024-02-12T10:30:00Z",
  "updatedAt": "2024-02-12T10:30:00Z"
}

Ratenbegrenzungen & Bewährte Methoden

Richtlinien zur API-Nutzung

Ratenbegrenzungen

Derzeit werden für selbst gehostete Instanzen keine Ratenbegrenzungen erzwungen. Erwägen Sie für Produktionsbereitstellungen die Implementierung einer Ratenbegrenzung basierend auf Ihrer Infrastruktur.

Bewährte Methoden

  • • Verwenden Sie WebSocket für Echtzeitdaten statt Polling
  • • Cachen Sie Antworten clientseitig (React Query übernimmt dies)
  • • Bündeln Sie Operationen wenn möglich (Massenerstellung von Todos)
  • • Behandeln Sie die Token-Aktualisierung automatisch mit Interceptoren
  • • Verwenden Sie optimistische Updates für bessere UX

Fehlerbehandlung

Standard-HTTP-Statuscodes:

  • • 200 - Erfolg
  • • 201 - Erstellt
  • • 400 - Ungültige Anfrage (Validierungsfehler)
  • • 401 - Nicht autorisiert (ungültiges/abgelaufenes Token)
  • • 403 - Verboten (unzureichende Berechtigungen)
  • • 404 - Nicht gefunden
  • • 500 - Serverfehler