Référence API complète
L'API sh0 complète avec 180+ endpoints, un explorateur interactif et une spécification OpenAPI téléchargeable pour la génération de 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 : Naviguez vers API Docs dans la barre latérale de 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 disponible à :
# JSON format
curl https://your-server:9000/api/openapi.json
# YAML format
curl https://your-server:9000/api/openapi.yamlGroupes d'endpoints
L'API est organisée en groupes logiques. Voici un résumé des principales catégories d'endpoints :
Apps
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/apps | Lister toutes les applications |
| POST | /api/apps | Créer une nouvelle application |
| GET | /api/apps/:id | Obtenir les détails d'une app |
| PUT | /api/apps/:id | Mettre à jour la configuration d'une app |
| DELETE | /api/apps/:id | Supprimer une application |
| POST | /api/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/apps/:id/deploy | Déclencher un nouveau déploiement |
| GET | /api/apps/:id/deployments | Lister l'historique des déploiements |
| POST | /api/apps/:id/rollback | Revenir à un déploiement précédent |
Domaines et SSL
Ajouter des domaines personnalisés, vérifier le DNS et gérer les certificats SSL.
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/domains | Lister tous les domaines |
| POST | /api/domains | Ajouter un domaine personnalisé |
| POST | /api/domains/verify | Vérifier le DNS d'un domaine |
| GET | /api/certificates | Lister les certificats SSL |
Bases de données
Provisionner des bases de données, gérer les sauvegardes et obtenir les chaînes de connexion.
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /api/databases | Créer une nouvelle base de données |
| GET | /api/databases/:id | Obtenir les détails d'une base de données + chaîne de connexion |
| POST | /api/databases/:id/backup | Déclencher une sauvegarde manuelle |
| POST | /api/databases/:id/restore | Restaurer depuis 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 |
| Scaling | 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 plus de 170 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.
# Download as JSON
curl -o sh0-openapi.json https://your-server:9000/api/openapi.json
# Download as YAML
curl -o sh0-openapi.yaml https://your-server:9000/api/openapi.yamlLe 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://your-server:9000/api/openapi.json \
-o ./src/lib/api/sh0-types.tsClient Python (en utilisant openapi-python-client) :
pip install openapi-python-client
openapi-python-client generate \
--url https://your-server:9000/api/openapi.jsonClient Go (en utilisant oapi-codegen) :
go install github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@latest
oapi-codegen -package sh0 sh0-openapi.json > sh0_client.go