Add data_visualization/js/api.js

This commit is contained in:
Mika 2026-03-24 11:10:13 +00:00
parent 6a71bcea40
commit 3419c4ddd3

View file

@ -0,0 +1 @@
/*\n * API Data Layer - js/api.js\n * Kommuniziert mit der API /run-data zum Abrufen der Replikationsdaten.\n *\n * © 2026 Donau2Space.de\n */\n\n/**\n * Holt Replikationsdaten über den Endpunkt /run-data.\n *\n * @async\n * @function fetchRunData\n * @param {string|number} run_id - Die eindeutige ID des gewünschten Replikationslaufs.\n * @returns {Promise<Object>} Promise, das auf das JSON der Replikationsdaten auflöst.\n * @throws {Error} wenn der Request fehlschlägt oder ungültige Daten zurückliefert.\n */\nexport async function fetchRunData(run_id) {\n if (!run_id) {\n throw new Error('fetchRunData: run_id ist erforderlich');\n }\n\n const url = new URL('/run-data', window.location.origin);\n url.searchParams.append('run_id', run_id);\n\n try {\n const response = await fetch(url.toString(), {\n method: 'GET',\n headers: {\n 'Accept': 'application/json'\n }\n });\n\n if (!response.ok) {\n throw new Error(`API-Fehler: ${response.status} ${response.statusText}`);\n }\n\n const data = await response.json();\n\n if (!data || typeof data !== 'object' || !data.metrics) {\n throw new Error('Ungültige API-Antwortstruktur.');\n }\n\n return data;\n } catch (error) {\n console.error('Fehler beim Abrufen der Run-Daten:', error);\n throw error;\n }\n}