Zum Hauptinhalt springen

API-Referenz

Stellen Sie Ihre Funktionen über eine standardisierte RESTful-Schnittstelle bereit und führen Sie sie aus.

Ausführungsendpunkt

POST https://api.matesst.com/api/v2/:functionName

Ersetzen Sie :functionName durch den Namen der Funktion, die Sie ausführen möchten.

HeaderWertBeschreibung
AuthorizationBearer ${API_SECRET}Ihr Anwendungsgeheimnis (App Secret)
Content-Typeapplication/jsonErforderlich für JSON-Body

Anfragetext (Request Body)

Der Anfragetext muss ein JSON-Objekt mit den folgenden Feldern sein:

FeldTypErforderlichBeschreibung
paramsArrayJaListe der Eingabeargumente für die Funktion.
nargoutNumberJaAnzahl der erwarteten Rückgabewerte der Funktion.
instanceIdStringNeinID der zu verwendenden Algorithmus-Maschine.

Informationen zur instanceId

  • Lastverteilung: Wenn instanceId weggelassen wird, verwendet Matesst eine Maschine aus dem gemeinsamen Pool (IDs beginnend mit instance-) unter Verwendung eines komplexen Lastverteilungsalgorithmus.
  • Dedizierte Instanz: Sie können eine benutzerdefinierte Zeichenfolge als instanceId angeben. Wenn diese ID nicht existiert, startet Matesst automatisch eine temporäre dedizierte Maschine, die unabhängig vom gemeinsamen Load-Balancing-Pool arbeitet. Dies stellt sicher, dass Ihre Prozesse vor Verdrängung oder Ressourcenkonflikten durch andere Anfragen geschützt sind, insbesondere in Szenarien mit hoher Nebenläufigkeit.
  • Leistungsoptimierung: Die Wiederverwendung derselben instanceId für nachfolgende Anfragen vermeidet Kaltstartzeiten, da die Maschine für diese spezifische ID "aktiv" bleibt.

Beispielanfrage

{
"params": [1, 2],
"nargout": 1,
"instanceId": "instance-0"
}

Antwortstruktur

Matesst gibt ein JSON-Objekt zurück, das die Ausführungsergebnisse enthält.

FeldTypBeschreibung
resultsanyDie Rückgabewerte Ihrer Funktion.
statusStringStatus der Anfrage (z. B. "success", "error").

Regeln für die Ergebnisverpackung

  • Einzelne Zahl mit nargout = 1: Wenn die Funktion eine einzelne Zahl zurückgibt und nargout auf 1 gesetzt ist, wird diese direkt im Feld results zurückgegeben.
  • Andernfalls: Die Ergebnisse werden immer in eine verschachtelte Array-Struktur verpackt. Die Länge des äußeren Arrays entspricht nargout.
    • Beispiel: Wenn nargout = 1 und die Funktion ein Array [1, 2, 3] zurückgibt, lautet das Feld results [[1, 2, 3]].

Beispiel: Einzelne Zahl

{
"results": 7,
"status": "success"
}

Beispiel: Komplexe Daten (unique Funktion)

Beim Aufruf von Funktionen, die mehrere Vektoren zurückgeben (wie unique), wird jede Ausgabe entsprechend ihrer Dimensionen verpackt. Beachten Sie den Unterschied zwischen dem Zeilenvektor (erstes Ergebnis) und den Spaltenvektoren (zweites und drittes Ergebnis).

Anfrage:

{
"params": [[9, 2, 2, 9, 5]],
"nargout": 3
}

Antwort:

{
"results": [
[[2, 5, 9]], // Ausgabe 1: Eindeutige Werte (Zeilenvektor)
[[2], [5], [1]], // Ausgabe 2: Indizes ia (Spaltenvektor)
[[3], [1], [1], [3], [2]] // Ausgabe 3: Umgekehrte Indizes ic (Spaltenvektor)
],
"status": "success"
}

Fehlerbehandlung

Wenn die Ausführung fehlschlägt, gibt Matesst einen Nicht-200-Statuscode mit einem JSON-Body zurück, der den Fehler beschreibt.

FeldTypBeschreibung
errorStringEine kurze Zusammenfassung des Fehlertyps.
messageStringDetaillierte Fehlerinformationen, oft einschließlich der Stapelüberwachung (Stack Trace).

Beispiel für eine Fehlerantwort

{
"error": "Execution Error",
"message": "Too many input arguments.\n"
}