Skip to main content

Dokumentation für ScryLab v0.1.10

Changelogs

Signal-Upload (Binary)

POST /api/signals/upload

Lädt ein Signal als multipart/form-data hoch. Im Gegensatz zu POST /api/signals/send (JSON inline) wird hier der Dateiinhalt direkt übertragen – der Server benötigt keinen Host-Dateipfad und damit keinen Zugriff auf das Host-Dateisystem. Das ist der empfohlene Weg für große Signale und funktioniert auch im Flatpak.

Tip

Praktische Schritt-für-Schritt-Anleitung: Daten aus Python & MATLAB importieren

Request

POST /api/signals/upload HTTP/1.1
Host: localhost:5678
Content-Type: multipart/form-data; boundary=...

Form-Felder

FeldTypErforderlichBeschreibung
fileDateiJa.npz oder .mat mit Arrays y (erforderlich), x, z (optional)
metaJSON-StringNein{name, y_unit, x_unit, z_unit, target_source_id, overwrite}

Die Metadaten können wahlweise als meta-JSON-Feld oder einzeln als Form-Felder (name, y_unit, x_unit, z_unit, target_source_id) übergeben werden. name und target_source_id sind erforderlich. Mit overwrite: true wird ein gleichnamiges Signal in der Ziel-Source ersetzt.

Dateiformat

  • NumPy (.npz): Muss ein Array y enthalten. Optional: x und z.
  • MATLAB (.mat): Muss eine Variable y enthalten. Optional: x und z.

Response

Status Code: 200 OK

{
"status": "ok",
"result": {
"signal_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Großes Signal",
"sample_count": 1000000
}
}

Fehler

StatusBedeutung
400Kein file-Feld oder ungültige Metadaten
404target_source_id nicht gefunden
415Nicht unterstützter Dateityp (nur .npz / .mat)
500Serverfehler beim Speichern oder Laden der Datei

POST /api/signals/upload_batch

Lädt mehrere Signale in einem einzigen Request hoch. Das spart die HTTP-Round-Trips vieler Einzel-Uploads – ideal um viele (große) Kanäle, z.B. eine ganze Messung, effizient auf einmal zu übertragen.

Request

POST /api/signals/upload_batch HTTP/1.1
Host: localhost:5678
Content-Type: multipart/form-data; boundary=...

Form-Felder

FeldTypErforderlichBeschreibung
fileDatei (mehrfach)JaEin .npz/.mat Upload pro Signal
metaJSON-Array oder -ObjektNeinEin Objekt pro Datei (gleiche Reihenfolge), oder ein einzelnes Objekt für alle Dateien
target_source_idstringNeinDefault-Ziel für Signale ohne eigenes target_source_id

Jedes meta-Objekt akzeptiert dieselben Felder wie bei /api/signals/upload, einschließlich overwrite. Die Zuordnung von file zu meta erfolgt über die Reihenfolge.

Response

Status Code: 200 OK

{
"status": "ok",
"result": {
"signals": [
{"signal_id": "...", "name": "Kanal A", "sample_count": 1000000},
{"signal_id": "...", "name": "Kanal B", "sample_count": 1000000}
],
"errors": []
}
}

Ein fehlerhaftes Einzel-Signal bricht den Request nicht ab. Erfolgreiche Importe stehen in signals, fehlgeschlagene in errors (jeweils mit index und error).

Fehler

StatusBedeutung
400Kein file-Feld oder meta ist kein JSON-Array
500Serverfehler