Zum Hauptinhalt springen

Products API

Produkte auflisten

GET /products

ParameterTypBeschreibung
searchstringVolltextsuche (Name, Barcode)
category_idUUIDNach Kategorie filtern
pageintSeitennummer (default: 1)
page_sizeintEinträge pro Seite (default: 50, max: 200)

Response 200:

{
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Vollmilch 3.5%",
"barcode": "4014500513003",
"category": { "id": "...", "name": "Milchprodukte", "icon": "🧀", "color": "#fbbf24" },
"default_quantity_unit": "Stück",
"min_stock_amount": 2,
"total_stock": 5
}
],
"total": 42,
"page": 1,
"page_size": 50,
"pages": 1
}

Produkt abrufen

GET /products/{id}

Response 200: Vollständiges Produkt-Objekt mit Kategorie und Timestamps.

Produkt erstellen

POST /products

{
"name": "Vollmilch 3.5%",
"barcode": "4014500513003",
"category_id": "550e8400-...",
"default_quantity_unit": "Stück",
"min_stock_amount": 2
}
FeldPflichtValidierung
name1–300 Zeichen
barcodeMax. 100 Zeichen
category_idGültige UUID
descriptionMax. 5000 Zeichen
min_stock_amount≥ 0
default_quantity_unitMax. 50 Zeichen, default "Stück"
default_best_before_days0–36500

Response 201: Erstelltes Produkt.

Produkt aktualisieren

PATCH /products/{id}

Partial Update — nur die mitgesendeten Felder werden aktualisiert.

Response 200: Aktualisiertes Produkt.

Produkt löschen

DELETE /products/{id}

Löscht das Produkt und alle zugehörigen Bestandseinträge.

Response 204: Kein Body.