Interact with the Kochbuch recipe management system. Use when managing recipes, the weekly meal plan (Wochenplan), searching for meals, or building a shopping list for Bring!. Covers all REST API endpoints.
WG-Kochbuch mit REST-API. Kein Auth – alle Endpoints offen.
Rezept: slug (PK, aus Titel generiert), titel, beschreibung (Markdown-Freitext), foto (URL oder null)
Wochenplan-Eintrag: id (UUID), rezeptSlug (FK), status (geplant → eingekauft → gekocht)
Die beschreibung ist unstrukturiertes Markdown – Zutaten, Schritte, Links, alles gemischt.
GET /api/rezepte → Rezept[]
POST /api/rezepte → Rezept (201)
Body: { titel, beschreibung?, foto? }
GET /api/rezepte/:slug → Rezept | 404
PATCH /api/rezepte/:slug → Rezept | 404
Body: { titel?, beschreibung?, foto? }
DELETE /api/rezepte/:slug → { ok: true } | 404
GET /api/wochenplan → Eintrag[] (inkl. titel + foto vom Rezept)
POST /api/wochenplan → Eintrag (201)
Body: { rezeptSlug }
PATCH /api/wochenplan/:id → Eintrag | 404
Body: { status } (geplant | eingekauft | gekocht)
DELETE /api/wochenplan/:id → { ok: true } | 404
GET /api/suche?q=spaghetti → { slug, titel, beschreibung }[]
Orama-Volltextsuche, typo-tolerant. Durchsucht titel und beschreibung.
GET /api/einkaufsliste → { rezeptSlug, titel, beschreibung }[]
Gibt alle Rezepte zurück, deren Wochenplan-Status geplant ist. Die Beschreibung ist Markdown – Zutaten müssen daraus geparst werden.
POST /api/upload → { url: "/uploads/<uuid>.<ext>" } (201)
Body: FormData mit Feld "file"
GET /uploads/:filename → Bild-Datei
GET /api/rezepte oder /api/suche?q=... – Rezepte findenPOST /api/wochenplan mit { rezeptSlug } – zum Plan hinzufügenGET /api/einkaufsliste – alle geplanten Rezepte mit Beschreibungen holenPATCH /api/wochenplan/:id mit { status: "eingekauft" } – Status weiterschaltenPATCH mit { status: "gekocht" }