ecloudserv docs

Référence des endpoints

Chaque route, ce qu'elle attend et ce qu'elle renvoie.

Tous les chemins ci-dessous sont relatifs à https://api.ecloudserv.fr/api/v1 et demandent l'en-tête Authorization: Bearer …. Voir la vue d'ensemble pour les codes d'erreur.

À noter

Cette page couvre les routes stables. Le panel expose davantage d'actions ; celles qui ne sont pas listées ici peuvent encore changer de forme, mieux vaut ne pas bâtir dessus tout de suite.

Compte#

GET/meportée read
Renvoie le compte associé à la clé. C'est la requête à utiliser pour vérifier qu'une clé est valide.
requête
curl https://api.ecloudserv.fr/api/v1/me \ -H "Authorization: Bearer $ECLOUD_API_KEY"
réponse
{ "id": "usr_1a2b3c", "username": "lucas", "email": "[email protected]" }

Services#

GET/serversportée read
Liste les services du compte.
réponse
[ { "id": "srv_9f8e7d", "name": "mon-bot", "status": "RUNNING", "runtime": "nodejs" } ]
GET/servers/:idportée read
Détail d'un service : configuration, offre, état courant.
GET/servers/:id/resourcesportée read
Consommation instantanée : processeur, mémoire, disque, réseau.
réponse
{ "cpu_percent": 3.4, "memory_bytes": 148897792, "disk_bytes": 512000000, "network": { "rx_bytes": 91234, "tx_bytes": 44120 }, "uptime_ms": 864000 }
POST/serversportée write
Crée un service. Le corps décrit le nom, l'environnement et les ressources voulues.
requête
curl -X POST https://api.ecloudserv.fr/api/v1/servers \ -H "Authorization: Bearer $ECLOUD_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "mon-service", "runtime": "nodejs", "ram": 512, "disk": 2048, "cpu": 100 }'

La réponse est un 201 avec le service créé. Sa création n'est pas instantanée : interrogez /servers/:id jusqu'à ce que son état passe d'installation à démarré.

POST/servers/:id/powerportée write
Change l'état d'un service : démarrage, arrêt, redémarrage.
requête
curl -X POST https://api.ecloudserv.fr/api/v1/servers/srv_9f8e7d/power \ -H "Authorization: Bearer $ECLOUD_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "signal": "restart" }'
SignalEffet
startDémarre un service arrêté.
stopDemande un arrêt propre au programme.
restartArrêt puis démarrage.
killArrêt brutal, sans laisser le programme se fermer.

Attention

kill coupe le processus net. Si votre programme écrivait un fichier ou une base à cet instant, les données peuvent être laissées à moitié écrites. Réservez-le aux cas où stop ne répond plus.

Attendre qu'un service soit prêt

Une action d'alimentation renvoie immédiatement, avant que l'état ait changé. Le bon réflexe est d'interroger l'état, avec un délai qui s'allonge :

attente d'un état
async function attendreEtat(id, attendu, timeoutMs = 120000) { const base = "https://api.ecloudserv.fr/api/v1"; const debut = Date.now(); let delai = 1000; while (Date.now() - debut < timeoutMs) { const res = await fetch(`${base}/servers/${id}`, { headers: { Authorization: `Bearer ${process.env.ECLOUD_API_KEY}` }, }); if (res.ok && (await res.json()).status === attendu) return true; await new Promise((r) => setTimeout(r, delai)); delai = Math.min(delai * 1.5, 10000); // on ralentit au lieu de marteler } throw new Error(`${id} n'a pas atteint l'état ${attendu} à temps`); }