gate_v0_analysis/result_visualization/js/api.js

43 lines
1.4 KiB
JavaScript

/**
* @module api
* @description Stellt Funktionen zum Abrufen der Analyseergebnisse über die /results API bereit.
*/
/**
* Sendet eine GET-Anfrage an die /results API, um Analyseergebnisse zu laden.
*
* @async
* @function fetchResults
* @param {Object} [filters={}] - Optionale Filterparameter (z. B. { run_type: 'pinned', metric: 'correlation' })
* @returns {Promise<Array>} Promise, das ein Array von Runs mit Feldern {id, type, parameters, statistics, chartData} zurückgibt.
* @throws {Error} Wenn die Anfrage fehlschlägt oder ungültige JSON-Daten zurückgibt.
*/
export async function fetchResults(filters = {}) {
try {
const query = new URLSearchParams();
if (filters.run_type) query.append('run_type', filters.run_type);
if (filters.metric) query.append('metric', filters.metric);
const response = await fetch(`/results${query.toString() ? `?${query.toString()}` : ''}`, {
method: 'GET',
headers: {
'Accept': 'application/json'
}
});
if (!response.ok) {
throw new Error(`Fehler beim Abrufen der Ergebnisse: ${response.status}`);
}
const data = await response.json();
if (!Array.isArray(data)) {
throw new Error('Unerwartetes Datenformat: Erwartet wurde ein Array.');
}
return data;
} catch (error) {
console.error('API-Fehler in fetchResults:', error);
throw error;
}
}