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

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.
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 disponible à :

Terminal
# JSON format
curl https://your-server:9000/api/openapi.json

# YAML format
curl https://your-server:9000/api/openapi.yaml
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 :

Apps

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/appsLister toutes les applications
POST/api/appsCréer une nouvelle application
GET/api/apps/:idObtenir les détails d'une app
PUT/api/apps/:idMettre à jour la configuration d'une app
DELETE/api/apps/:idSupprimer une application
POST/api/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/apps/:id/deployDéclencher un nouveau déploiement
GET/api/apps/:id/deploymentsLister l'historique des déploiements
POST/api/apps/:id/rollbackRevenir à 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éthodeEndpointDescription
GET/api/domainsLister tous les domaines
POST/api/domainsAjouter un domaine personnalisé
POST/api/domains/verifyVérifier le DNS d'un domaine
GET/api/certificatesLister 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éthodeEndpointDescription
POST/api/databasesCréer une nouvelle base de données
GET/api/databases/:idObtenir les détails d'une base de données + chaîne de connexion
POST/api/databases/:id/backupDéclencher une sauvegarde manuelle
POST/api/databases/:id/restoreRestaurer depuis 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
Scaling4 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 plus de 170 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
# 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.yaml

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://your-server:9000/api/openapi.json \
  -o ./src/lib/api/sh0-types.ts

Client Python (en utilisant openapi-python-client) :

Terminal
pip install openapi-python-client
openapi-python-client generate \
  --url https://your-server:9000/api/openapi.json

Client Go (en utilisant oapi-codegen) :

Terminal
go install github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@latest
oapi-codegen -package sh0 sh0-openapi.json > sh0_client.go
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