From ed5f615d3aa13477f7f371acce79b623ce289683 Mon Sep 17 00:00:00 2001 From: Mika Date: Mon, 19 Jan 2026 12:48:34 +0000 Subject: [PATCH] Add results_visualization/js/api.js --- results_visualization/js/api.js | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 results_visualization/js/api.js diff --git a/results_visualization/js/api.js b/results_visualization/js/api.js new file mode 100644 index 0000000..b619765 --- /dev/null +++ b/results_visualization/js/api.js @@ -0,0 +1,46 @@ +/** + * @file js/api.js + * @description Beinhaltet Funktionen für die Kommunikation mit der API und das Parsen von ResultData. + * @module data_layer + */ + +/** + * Stellt die Verbindung zur API her und ruft Analyseergebnisse ab. + * + * @async + * @function fetchResults + * @returns {Promise>} Array von ResultData. + * @throws {Error} Wird ausgelöst, wenn der Fetch-Vorgang fehlschlägt oder die Response ungültig ist. + */ +export async function fetchResults() { + const endpoint = '/api/results'; + try { + const response = await fetch(endpoint, { + method: 'GET', + headers: { + 'Accept': 'application/json' + } + }); + + if (!response.ok) { + throw new Error(`API-Fehler: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + + if (!Array.isArray(data)) { + throw new Error('Ungültige API-Antwort: Daten sind nicht vom Typ Array'); + } + + const parsedResults = data.map(item => ({ + run_id: String(item.run_id ?? ''), + step_stability_score: Number(item.step_stability_score ?? 0), + correlation_coefficient: Number(item.correlation_coefficient ?? 0) + })); + + return parsedResults; + } catch (error) { + console.error('Fehler beim Abrufen der Ergebnisse:', error); + throw error; + } +}