Docs/ Référence API/ Référence complète

Référence API complète

L’API REST complète de sh0 : plus de 230 chemins sous /api/v1, un explorateur interactif et une spécification OpenAPI téléchargeable pour générer du code.

Explorateur API interactif

La façon la plus simple d'explorer l'API sh0 est via l'explorateur API interactif, disponible à :

  • Tableau de bord : ouvrez Services → Explorateur API dans votre tableau de bord sh0.
  • Site web : Visitez /api sur le site web sh0.
Explorateur API interactif montrant la liste des endpoints avec aperçus requête/réponse

L'explorateur vous permet de :

  • Parcourir tous les endpoints organisés par catégorie
  • Voir les paramètres de requête, les en-têtes et les schémas de body
  • Voir des exemples de réponse pour chaque endpoint
  • Tester les endpoints directement depuis le navigateur (lorsque connecté à une instance sh0)
  • Copier des commandes curl pour n'importe quel endpoint
Tip
L'explorateur API est automatiquement généré à partir de la spécification OpenAPI en utilisant utoipa. Il est toujours synchronisé avec les endpoints API réels de votre version de sh0.

Spécification OpenAPI

sh0 expose une spécification OpenAPI 3.1 complète qui décrit chaque endpoint, paramètre, body de requête et type de réponse. La spécification est auto-générée à partir du code source Rust en utilisant utoipa, garantissant qu'elle est toujours précise et à jour.

La spécification est servie en JSON, sans authentification, à l’adresse :

Terminal
curl https://panel.example.com/api/v1/openapi.json
Spécification OpenAPI rendue dans un visualiseur de documentation

Groupes d'endpoints

L'API est organisée en groupes logiques. Voici un résumé des principales catégories d'endpoints :

Applications

Gérer le cycle de vie des applications -- créer, configurer, démarrer, arrêter, redémarrer et supprimer des apps.

MéthodeEndpointDescription
GET/api/v1/appsLister toutes les applications
POST/api/v1/appsCréer une nouvelle application
POST/api/v1/apps/uploadCréer ou mettre à jour une app à partir d’une archive envoyée
GET/api/v1/apps/:idObtenir les détails d'une app
PATCH/api/v1/apps/:idMettre à jour la configuration d'une app
DELETE/api/v1/apps/:idSupprimer une application
POST/api/v1/apps/:id/restartRedémarrer une application

Déploiements

Déclencher des déploiements, consulter les logs de build, effectuer un rollback et gérer l'historique des déploiements.

MéthodeEndpointDescription
POST/api/v1/apps/:id/deploymentsDéclencher un nouveau déploiement
GET/api/v1/apps/:id/deploymentsLister l'historique des déploiements
POST/api/v1/deployments/:id/rollbackRevenir à un déploiement précédent

Domaines et SSL

Lister les domaines, les rattacher à une app et gérer ses certificats.

MéthodeEndpointDescription
GET/api/v1/domainsLister tous les domaines
POST/api/v1/apps/:id/domainsAjouter un domaine à une app
DELETE/api/v1/apps/:id/domains/:domain_idRetirer un domaine d’une app
GET/api/v1/apps/:id/certificatesLister les certificats d’une app

Bases de données

Créer des serveurs de bases de données, lancer des sauvegardes et des restaurations.

MéthodeEndpointDescription
POST/api/v1/database-serversCréer un serveur de bases de données
GET/api/v1/database-servers/:idLire un serveur de bases de données
POST/api/v1/backups/triggerLancer une sauvegarde maintenant
POST/api/v1/backups/:id/restoreRestaurer une sauvegarde

Autres endpoints

L'API couvre aussi ces catégories de ressources :

CatégorieEndpointsDescription
Variables d'environnement8 endpointsCRUD pour les variables d'env, import en masse, gestion des secrets
Stockage et montages6 endpointsGestion des volumes, fournisseurs de stockage
Mise à l'échelle4 endpointsScaling manuel, règles d'auto-scaling
Surveillance12 endpointsMétriques, alertes, vérifications de disponibilité, statut de santé
Tâches cron5 endpointsPlanifier, lister, mettre à jour, supprimer, exécuter des tâches cron
Équipe et auth15 endpointsConnexion, 2FA, sessions, membres d'équipe, clés API
Clés SSH4 endpointsAjouter, lister, supprimer des clés SSH
Nœuds8 endpointsGestion multi-serveur, santé des nœuds
Services8 endpointsURL des sous-services, statut, redémarrer, arrêter, démarrer, identifiants
Sauvegardes11 endpointsDéclencher, lister, restaurer, télécharger des sauvegardes, gérer les planifications
Certificats6 endpointsGestion des certificats SSL, génération de CSR, modes SSL
Projets11 endpointsCRUD des projets, gestion des membres, journaux d'audit
Redirections5 endpointsRègles de redirection d'URL, créer, modifier, activer/désactiver, supprimer
Environnements de prévisualisation4 endpointsDéploiements de prévisualisation de PR, paramètres, nettoyage
Paramètres6 endpointsConfiguration du serveur, domaine, Cloudflare, ACME, DNS
Templates5 endpointsParcourir et déployer depuis 171 templates
Webhooks6 endpointsWebhooks Git, hooks de déploiement, hooks de notification
Aperçu des groupes d'endpoints API dans l'explorateur

Télécharger la spécification OpenAPI

Vous pouvez télécharger la spécification OpenAPI pour l'utiliser avec des outils de documentation, des frameworks de test ou des générateurs de code.

Terminal
curl -o sh0-openapi.json https://panel.example.com/api/v1/openapi.json

Le fichier de spécification peut être importé dans des outils comme :

  • Postman : Importez la spécification pour créer une collection avec tous les endpoints préconfigurés.
  • Insomnia : Importez pour un espace de travail API interactif.
  • Swagger UI : Hébergez votre propre documentation API interactive.
  • Redocly : Générez une belle documentation API.
Spécification OpenAPI importée dans Postman

Utilisation avec les générateurs de code

La spécification OpenAPI peut être utilisée avec des générateurs de code pour créer des clients API typés dans n'importe quel langage :

Client TypeScript (en utilisant openapi-typescript) :

Terminal
npx openapi-typescript https://panel.example.com/api/v1/openapi.json \
  -o ./src/lib/api/sh0-types.ts
Tip
Les clients générés vous offrent une sécurité de type complète et l'autocomplétion dans votre IDE. Ils sont particulièrement utiles lors de la construction de pipelines CI/CD ou d'outils d'automatisation personnalisés qui interagissent avec votre instance sh0.
Autocomplétion TypeScript à partir des types API générés dans VS Code