Référence API
Déployez et exécutez vos fonctions via une interface RESTful standardisée.
Point de terminaison d'exécution
POST https://api.matesst.com/api/v2/:functionNameRemplacez :functionName par le nom de la fonction que vous souhaitez exécuter.
En-têtes (Headers)
| En-tête | Valeur | Description |
|---|---|---|
Authorization | Bearer ${API_SECRET} | Votre clé secrète d'application |
Content-Type | application/json | Requis pour le corps JSON |
Corps de la requête (Request Body)
Le corps de la requête doit être un objet JSON avec les champs suivants :
| Champ | Type | Requis | Description |
|---|---|---|---|
params | Array | Oui | Liste des arguments d'entrée pour la fonction. |
nargout | Number | Oui | Nombre de valeurs de retour attendues de la fonction. |
instanceId | String | Non | ID de la machine d'algorithme à utiliser. |
Comprendre instanceId
- Équilibrage de charge : Si
instanceIdest omis, Matesst utilisera une machine du pool partagé (ID commençant parinstance-) en utilisant un algorithme d'équilibrage de charge complexe. - Instance dédiée: Vous pouvez spécifier une chaîne personnalisée comme
instanceId. Si cet ID n'existe pas, Matesst créera automatiquement une machine dédiée temporaire qui fonctionne indépendamment du pool de répartition de charge partagé. Cela garantit que vos processus sont protégés contre l'éviction ou la concurrence pour les ressources par d'autres requêtes, en particulier dans les scénarios à haute concurrence. - Optimisation des performances : La réutilisation du même
instanceIdpour les requêtes ultérieures évite les temps de démarrage à froid, car la machine reste "chaude" pour cet ID spécifique.
Exemple de requête
{
"params": [1, 2],
"nargout": 1,
"instanceId": "instance-0"
}
Structure de la réponse
Matesst renvoie un objet JSON contenant les résultats de l'exécution.
| Champ | Type | Description |
|---|---|---|
results | any | Les valeurs de retour de votre fonction. |
status | String | État de la requête (par exemple, "success", "error"). |
Règles d'emballage des résultats
- Nombre unique avec
nargout = 1: Si la fonction renvoie un seul nombre et quenargoutest défini sur 1, il est renvoyé directement dans le champresults. - Sinon : Les résultats sont toujours emballés dans une structure de tableau imbriqué. La longueur du tableau externe correspond à
nargout.- Exemple : Si
nargout = 1et que la fonction renvoie un tableau[1, 2, 3], le champresultssera[[1, 2, 3]].
- Exemple : Si
Exemple : Nombre unique
{
"results": 7,
"status": "success"
}
Exemple : Données complexes (fonction unique)
Lors de l'appel de fonctions qui renvoient plusieurs vecteurs (comme unique), chaque sortie est emballée selon ses dimensions. Notez la différence entre le vecteur ligne (premier résultat) et les vecteurs colonnes (deuxième et troisième résultats).
Requête :
{
"params": [[9, 2, 2, 9, 5]],
"nargout": 3
}
Réponse :
{
"results": [
[[2, 5, 9]], // Sortie 1 : Valeurs uniques (Vecteur ligne)
[[2], [5], [1]], // Sortie 2 : Indices ia (Vecteur colonne)
[[3], [1], [1], [3], [2]] // Sortie 3 : Indices inverses ic (Vecteur colonne)
],
"status": "success"
}
Gestion des erreurs
Si l'exécution échoue, Matesst renvoie un code d'état non-200 avec un corps JSON décrivant l'erreur.
| Champ | Type | Description |
|---|---|---|
error | String | Un bref résumé du type d'erreur. |
message | String | Informations détaillées sur l'erreur, incluant souvent la trace de la pile (stack trace). |
Exemple de réponse d'erreur
{
"error": "Execution Error",
"message": "Too many input arguments.\n"
}