CarTask API Dokumentation

REST API für externe Anwendungen zur Verwaltung von Aufgaben und Personen

Einführung

Die CarTask API ermöglicht es externen Anwendungen, Aufgaben, Personen und Monitore zu verwalten. Alle Endpunkte verwenden JSON für Request und Response.

Tipp: Alle API-Endpunkte unterstützen CORS und können von jedem Client aus aufgerufen werden.

Base URL

http://localhost:3000/api

Ersetze localhost:3000 mit der IP-Adresse/Domain deines Servers.

Authentifizierung

Aktuell ist keine Authentifizierung erforderlich. Alle Endpunkte sind frei zugänglich.

Hinweis: In einer Produktionsumgebung sollte eine Authentifizierung implementiert werden.

Personen API

GET Alle Personen abrufen

Gibt eine Liste aller Personen zurück.

Request
GET /api/persons
Response
[
  {
    "id": 1,
    "name": "Max Mustermann",
    "position": 0
  },
  {
    "id": 2,
    "name": "Erika Musterfrau",
    "position": 1
  }
]
cURL Beispiel
curl http://localhost:3000/api/persons

POST Person erstellen

Erstellt eine neue Person.

Request
POST /api/persons
Body Parameter
Parameter Typ Erforderlich Beschreibung
name string Ja Name der Person
Request Beispiel
{
  "name": "John Doe"
}
Response
{
  "id": 3
}
cURL Beispiel
curl -X POST http://localhost:3000/api/persons \
  -H "Content-Type: application/json" \
  -d '{"name": "John Doe"}'

DELETE Person löschen

Löscht eine Person und alle zugehörigen Aufgaben.

Request
DELETE /api/persons/{id}
URL Parameter
Parameter Typ Beschreibung
id integer ID der Person
Response
{
  "success": true
}
cURL Beispiel
curl -X DELETE http://localhost:3000/api/persons/3

Aufgaben API

GET Alle Aufgaben abrufen

Gibt eine Liste aller offenen Aufgaben zurück.

Request
GET /api/tasks
Response
[
  {
    "id": 1,
    "title": "Ölwechsel",
    "description": "Motoröl wechseln bei BMW 320d",
    "person_id": 1,
    "priority": 0,
    "is_important": 1,
    "created_at": 1703001234567
  }
]
cURL Beispiel
curl http://localhost:3000/api/tasks

POST Aufgabe erstellen

Erstellt eine neue Aufgabe für eine Person.

Request
POST /api/tasks
Body Parameter
Parameter Typ Erforderlich Beschreibung
title string Ja Titel der Aufgabe
description string Nein Beschreibung der Aufgabe
person_id integer Ja ID der zugewiesenen Person
priority integer Nein Priorität (Standard: 0)
is_important boolean Nein Als wichtig markieren (Standard: false)
Request Beispiel
{
  "title": "Bremsen prüfen",
  "description": "Vorder- und Hinterachse kontrollieren",
  "person_id": 1,
  "priority": 0,
  "is_important": true
}
Response
{
  "id": 5
}
cURL Beispiel
curl -X POST http://localhost:3000/api/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Bremsen prüfen",
    "description": "Vorder- und Hinterachse kontrollieren",
    "person_id": 1,
    "is_important": true
  }'

PUT Aufgabe bearbeiten

Aktualisiert eine bestehende Aufgabe.

Request
PUT /api/tasks/{id}
Body Parameter

Alle Parameter von POST /api/tasks

Response
{
  "success": true
}
cURL Beispiel
curl -X PUT http://localhost:3000/api/tasks/5 \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Bremsen wechseln",
    "description": "Neue Bremsbeläge montieren",
    "person_id": 2,
    "priority": 1,
    "is_important": true
  }'

POST Aufgabe abschließen

Markiert eine Aufgabe als erledigt und verschiebt sie ins Archiv.

Request
POST /api/tasks/{id}/complete
Response
{
  "success": true
}
cURL Beispiel
curl -X POST http://localhost:3000/api/tasks/5/complete

DELETE Aufgabe löschen

Löscht eine Aufgabe permanent (nicht archivieren).

Request
DELETE /api/tasks/{id}
Response
{
  "success": true
}
cURL Beispiel
curl -X DELETE http://localhost:3000/api/tasks/5

Archiv API

GET Archiv abrufen

Gibt alle archivierten (erledigten) Aufgaben zurück.

Request
GET /api/archived-tasks
Response
[
  {
    "id": 1,
    "title": "Ölwechsel",
    "description": "Motoröl wechseln",
    "person_id": 1,
    "priority": 0,
    "is_important": 1,
    "created_at": 1703001234567,
    "completed_at": 1703005678901
  }
]
cURL Beispiel
curl http://localhost:3000/api/archived-tasks

DELETE Archiv-Eintrag löschen

Löscht einen Eintrag aus dem Archiv permanent.

Request
DELETE /api/archived-tasks/{id}
cURL Beispiel
curl -X DELETE http://localhost:3000/api/archived-tasks/1

Monitor API

GET Alle Monitore abrufen

Request
GET /api/monitors
Response
[
  {
    "id": 1,
    "name": "Werkstatt 1",
    "person_ids": [1, 2]
  }
]

POST Monitor erstellen

Body Parameter
Parameter Typ Beschreibung
name string Name des Monitors
person_ids array Array von Personen-IDs
Request Beispiel
{
  "name": "Werkstatt 2",
  "person_ids": [3, 4, 5]
}

PUT Monitor bearbeiten

Request
PUT /api/monitors/{id}

DELETE Monitor löschen

Request
DELETE /api/monitors/{id}
API bereit!

Du kannst jetzt externe Anwendungen mit der CarTask API verbinden.