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.
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
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 :
curl https://panel.example.com/api/v1/openapi.jsonGroupes 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éthode | Endpoint | Description |
|---|---|---|
| GET | /api/v1/apps | Lister toutes les applications |
| POST | /api/v1/apps | Créer une nouvelle application |
| POST | /api/v1/apps/upload | Créer ou mettre à jour une app à partir d’une archive envoyée |
| GET | /api/v1/apps/:id | Obtenir les détails d'une app |
| PATCH | /api/v1/apps/:id | Mettre à jour la configuration d'une app |
| DELETE | /api/v1/apps/:id | Supprimer une application |
| POST | /api/v1/apps/:id/restart | Redé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éthode | Endpoint | Description |
|---|---|---|
| POST | /api/v1/apps/:id/deployments | Déclencher un nouveau déploiement |
| GET | /api/v1/apps/:id/deployments | Lister l'historique des déploiements |
| POST | /api/v1/deployments/:id/rollback | Revenir à un déploiement précédent |
Domaines et SSL
Lister les domaines, les rattacher à une app et gérer ses certificats.
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/v1/domains | Lister tous les domaines |
| POST | /api/v1/apps/:id/domains | Ajouter un domaine à une app |
| DELETE | /api/v1/apps/:id/domains/:domain_id | Retirer un domaine d’une app |
| GET | /api/v1/apps/:id/certificates | Lister 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éthode | Endpoint | Description |
|---|---|---|
| POST | /api/v1/database-servers | Créer un serveur de bases de données |
| GET | /api/v1/database-servers/:id | Lire un serveur de bases de données |
| POST | /api/v1/backups/trigger | Lancer une sauvegarde maintenant |
| POST | /api/v1/backups/:id/restore | Restaurer une sauvegarde |
Autres endpoints
L'API couvre aussi ces catégories de ressources :
| Catégorie | Endpoints | Description |
|---|---|---|
| Variables d'environnement | 8 endpoints | CRUD pour les variables d'env, import en masse, gestion des secrets |
| Stockage et montages | 6 endpoints | Gestion des volumes, fournisseurs de stockage |
| Mise à l'échelle | 4 endpoints | Scaling manuel, règles d'auto-scaling |
| Surveillance | 12 endpoints | Métriques, alertes, vérifications de disponibilité, statut de santé |
| Tâches cron | 5 endpoints | Planifier, lister, mettre à jour, supprimer, exécuter des tâches cron |
| Équipe et auth | 15 endpoints | Connexion, 2FA, sessions, membres d'équipe, clés API |
| Clés SSH | 4 endpoints | Ajouter, lister, supprimer des clés SSH |
| Nœuds | 8 endpoints | Gestion multi-serveur, santé des nœuds |
| Services | 8 endpoints | URL des sous-services, statut, redémarrer, arrêter, démarrer, identifiants |
| Sauvegardes | 11 endpoints | Déclencher, lister, restaurer, télécharger des sauvegardes, gérer les planifications |
| Certificats | 6 endpoints | Gestion des certificats SSL, génération de CSR, modes SSL |
| Projets | 11 endpoints | CRUD des projets, gestion des membres, journaux d'audit |
| Redirections | 5 endpoints | Règles de redirection d'URL, créer, modifier, activer/désactiver, supprimer |
| Environnements de prévisualisation | 4 endpoints | Déploiements de prévisualisation de PR, paramètres, nettoyage |
| Paramètres | 6 endpoints | Configuration du serveur, domaine, Cloudflare, ACME, DNS |
| Templates | 5 endpoints | Parcourir et déployer depuis 171 templates |
| Webhooks | 6 endpoints | Webhooks Git, hooks de déploiement, hooks de notification |
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.
curl -o sh0-openapi.json https://panel.example.com/api/v1/openapi.jsonLe 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.
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) :
npx openapi-typescript https://panel.example.com/api/v1/openapi.json \
-o ./src/lib/api/sh0-types.ts