From 148a638f5e9d4e365e483ced5df204c57b19290c Mon Sep 17 00:00:00 2001 From: christian Date: Tue, 26 May 2026 15:01:47 +0000 Subject: [PATCH] fix(api-client): aussagekraeftige Fehlermeldungen - JSON-Parse-Fehler zeigt jetzt HTTP-Status + Body-Snippet - Validation-Errors (express-validator errors-Array) werden lesbar als Eingabe ungueltig: msg1, msg2 ausgegeben statt HTTP 400 --- src/api/client.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/api/client.js b/src/api/client.js index a460fe2..bfeaa1e 100644 --- a/src/api/client.js +++ b/src/api/client.js @@ -17,8 +17,19 @@ class ApiClient { const res = await fetch(`${API_BASE_URL}${endpoint}`, { ...options, headers }); const text = await res.text(); let data = null; - try { data = text ? JSON.parse(text) : null; } catch { throw new Error('Ungültige Server-Antwort'); } - if (!res.ok) throw new Error(data?.error || `HTTP ${res.status}`); + try { + data = text ? JSON.parse(text) : null; + } catch { + throw new Error(`Server-Antwort nicht lesbar (HTTP ${res.status}): ${text.slice(0, 120)}`); + } + if (!res.ok) { + // Validation-Errors (express-validator) zeigen + if (Array.isArray(data?.errors) && data.errors.length) { + const msg = data.errors.map(e => e.msg || e.message || JSON.stringify(e)).join(', '); + throw new Error(`Eingabe ungültig: ${msg}`); + } + throw new Error(data?.error || `HTTP ${res.status}`); + } return data; }