validationHTTP 400Die Anfrage verletzt das Schema
Ein Wert hat den falschen Typ, fehlt, ist zu lang, zu klein — oder der Rumpf enthält ein Feld, das die Route nicht kennt. Die Schemata dieser API sind durchgehend streng: ein unbekanntes Feld wird ABGELEHNT und nicht stillschweigend abgestreift. Das ist der Unterschied zwischen einem Tippfehler, der eine Minute kostet, und einem, den man drei Monate später im Datenbestand findet.
Wiederholen?
Nein — unverändertes Wiederholen ergibt genau dieselbe Antwort. Die Anfrage muss sich ändern.
Woran es liegt
- Ein Tippfehler im Feldnamen — `guestname` statt `guestName`. Erscheint in `issues` als `unrecognized_keys`.
- Ein unbekannter Abfrageparameter; auch die Query wird streng geprüft.
- Ein Pflichtfeld fehlt, oder ein Wert liegt ausserhalb seiner Grenzen (`limit=500` bei einem Höchstwert von 200).
- Der Rumpf ist kein gültiges JSON.
- Ein `cursor` aus einer ANDEREN Abfrage: andere Sortierung oder andere Filter. Der Zeiger trägt einen Fingerabdruck darüber und passt dann nicht mehr.
- Eine Operation, die `Idempotency-Key` verlangt, wurde ohne diese Kopfzeile aufgerufen.
Was zu tun ist
Lesen Sie `issues`: jede Fundstelle nennt `path`, `code` und `message`, und der Pfad zeigt auch in verschachtelte Rümpfe (`ingredients[2].quantity`). Wiederholen hilft erst mit geänderter Anfrage.
Zusätzliche Felder im Körper
Neben error, message, docs und requestId, die jede Fehlerantwort trägt:
issuesWo dieser Fehler entsteht
- GET /api/v1/reservationsUnbekannter Parameter, `date` zusammen mit `dateFrom`/`dateTo`, Enddatum vor Startdatum, `q` ohne Datumsfenster, fremde `areaId`, unlesbarer oder fremder `cursor`.
- POST /api/v1/reservationsSchema verletzt, unbekanntes Feld, fremde `areaId`/`tableIds`/`guestId`, oder die Torwache lehnt aus einem Eingabegrund ab (`unknown_area`, `area_not_bookable`, `invalid_time`, `end_time_required`, `party_size`).
- PATCH /api/v1/reservations/{id}Schema verletzt, fremde Kennung im Rumpf oder Eingabegrund der Torwache.
- POST /api/v1/reservations/{id}/statusUnbekannter Zustand, unbekanntes Feld im Rumpf oder ein Rumpf, der kein JSON ist.
- GET /api/v1/availabilityFehlendes oder unlesbares `date`, `partySize` ausserhalb 1–200, unbekannter Parameter oder ein `areaId`, der nicht zu diesem Betrieb gehört.
- GET /api/v1/table-occupanciesUnbekannter Parameter, fremder `tableId`, unlesbarer oder fremder `cursor`.
- POST /api/v1/table-occupanciesFremder oder unbekannter `tableId`, `occupiedFrom` in der Zukunft, unbekanntes Feld im Rumpf.
- PATCH /api/v1/table-occupancies/{id}`occupiedUntil` liegt vor `occupiedFrom`, oder ein Feld ist unbekannt.
- GET /api/v1/guestsUnbekannter Parameter (ein stillschweigend ignoriertes `updated_since` wäre der teuerste Tippfehler dieser API), unlesbare Rufnummer, unlesbarer Cursor.
- POST /api/v1/guestsSchema verletzt oder unbekanntes Feld im Rumpf.
- PATCH /api/v1/guests/{id}Schema verletzt, `tags` zusammen mit `addTags`/`removeTags`, oder `newsletterOptIn: true`.
- GET /api/v1/guests/{id}/visitsUnbekannter Parameter oder unlesbarer Cursor.
- POST /api/v1/guests/{id}/anonymize`Idempotency-Key` fehlt, `confirm` fehlt oder lautet anders, oder der Rumpf enthält ein unbekanntes Feld.
- GET /api/v1/opening-hoursUnbekannter Parameter, ein Parameter steht mehrfach in der Adresse, oder der Cursor gehört zu einer anderen Abfrage.
- GET /api/v1/areasUnbekannter oder doppelter Parameter, Cursor aus einer anderen Abfrage.
- GET /api/v1/tablesUnbekannter oder doppelter Parameter, unlesbarer Cursor.
- GET /api/v1/menusUnbekannter oder doppelter Parameter, unlesbarer Cursor.
- GET /api/v1/menus/{menuId}/categoriesUnbekannter oder doppelter Parameter, unlesbarer Cursor.
- GET /api/v1/menu-itemsUnbekannter oder doppelter Parameter, unlesbarer Cursor.
- GET /api/v1/blocks`to` liegt vor `from`, ein Datum ist ein Zeitstempel oder gibt es nicht, ein Parameter ist unbekannt oder steht doppelt.
- POST /api/v1/blocks`Idempotency-Key` fehlt, ein Feld passt nicht zur gewählten Art, ein Intervall ist leer, `date` ist ein Zeitstempel, oder der Rumpf enthält ein unbekanntes Feld.
- GET /api/v1/suppliersUnbekannter Parameter, `q` kürzer als zwei Zeichen, mehr als 100 `ids`, oder ein Cursor aus einer anderen Abfrage.
- POST /api/v1/suppliers`Idempotency-Key` fehlt, Schema verletzt oder ein unbekanntes Feld im Rumpf.
- PATCH /api/v1/suppliers/{id}Schema verletzt oder unbekanntes Feld.
- GET /api/v1/raw-materialsUnbekannter Parameter, `q` unter zwei Zeichen, `limit` über 200, mehr als 100 `ids`, eine unbekannte `packageUnit` — oder ein `cursor` aus einer anderen Abfrage.
- POST /api/v1/raw-materials`Idempotency-Key` fehlt, ein unbekanntes Feld im Rumpf, eine unbekannte Einheit, ein Land, das nicht zwei Buchstaben hat — oder eine `supplierId`, die nicht zu diesem Betrieb gehört.
- PATCH /api/v1/raw-materials/{id}Unbekanntes Feld, Wert ausserhalb seiner Grenzen, oder eine `supplierId` aus einem fremden Betrieb.
- GET /api/v1/recipesUnbekannter Parameter, `q` unter zwei Zeichen, `limit` über 200 — oder ein Cursor aus einer anderen Abfrage.
- POST /api/v1/recipes`Idempotency-Key` fehlt, ein unbekanntes Feld, mehr als 200 Zutaten oder 100 Schritte, eine `quantity` von 0 oder darunter, eine unbekannte `unit` — oder eine `rawMaterialId`, die zu einem anderen Betrieb gehört (`invalid_reference` im `issues`-Pfad).
- PATCH /api/v1/recipes/{id}Unbekanntes Feld, zu viele Zutaten oder Schritte, oder eine `rawMaterialId` aus einem fremden Betrieb.
- GET /api/v1/warehousesUnbekannter Parameter, `q` unter zwei Zeichen, oder ein Cursor aus einer anderen Abfrage.
- GET /api/v1/warehouse-stockUnbekannter Parameter, unzulässiges `sort`-Feld, oder ein Cursor aus einer anderen Abfrage.
- PUT /api/v1/warehouse-stock`Idempotency-Key` fehlt, ein unbekanntes Feld im Rumpf, eine negative `quantity` — oder `warehouseId`/`rawMaterialId` gehören nicht zu diesem Betrieb.