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/:functionNameErsetzen Sie :functionName durch den Namen der Funktion, die Sie ausführen möchten.
Header
| Header | Wert | Beschreibung |
|---|---|---|
Authorization | Bearer ${API_SECRET} | Ihr Anwendungsgeheimnis (App Secret) |
Content-Type | application/json | Erforderlich für JSON-Body |
Anfragetext (Request Body)
Der Anfragetext muss ein JSON-Objekt mit den folgenden Feldern sein:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
params | Array | Ja | Liste der Eingabeargumente für die Funktion. |
nargout | Number | Ja | Anzahl der erwarteten Rückgabewerte der Funktion. |
instanceId | String | Nein | ID der zu verwendenden Algorithmus-Maschine. |
Informationen zur instanceId
- Lastverteilung: Wenn
instanceIdweggelassen wird, verwendet Matesst eine Maschine aus dem gemeinsamen Pool (IDs beginnend mitinstance-) unter Verwendung eines komplexen Lastverteilungsalgorithmus. - Dedizierte Instanz: Sie können eine benutzerdefinierte Zeichenfolge als
instanceIdangeben. 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
instanceIdfü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.
| Feld | Typ | Beschreibung |
|---|---|---|
results | any | Die Rückgabewerte Ihrer Funktion. |
status | String | Status der Anfrage (z. B. "success", "error"). |
Regeln für die Ergebnisverpackung
- Einzelne Zahl mit
nargout = 1: Wenn die Funktion eine einzelne Zahl zurückgibt undnargoutauf 1 gesetzt ist, wird diese direkt im Feldresultszurückgegeben. - Andernfalls: Die Ergebnisse werden immer in eine verschachtelte Array-Struktur verpackt. Die Länge des äußeren Arrays entspricht
nargout.- Beispiel: Wenn
nargout = 1und die Funktion ein Array[1, 2, 3]zurückgibt, lautet das Feldresults[[1, 2, 3]].
- Beispiel: Wenn
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.
| Feld | Typ | Beschreibung |
|---|---|---|
error | String | Eine kurze Zusammenfassung des Fehlertyps. |
message | String | Detaillierte Fehlerinformationen, oft einschließlich der Stapelüberwachung (Stack Trace). |
Beispiel für eine Fehlerantwort
{
"error": "Execution Error",
"message": "Too many input arguments.\n"
}