Referencia API completa
La API completa de sh0 con más de 180 endpoints, un explorador interactivo y una especificación OpenAPI descargable para generación de código.
Explorador API interactivo
La forma más fácil de explorar la API de sh0 es a través del explorador API interactivo, disponible en:
- Panel de control: Navega a API Docs en la barra lateral de tu panel de control sh0.
- Sitio web: Visita /api en el sitio web de sh0.
El explorador te permite:
- Navegar todos los endpoints organizados por categoría
- Ver parámetros de solicitud, encabezados y esquemas de body
- Ver respuestas de ejemplo para cada endpoint
- Probar endpoints directamente desde el navegador (cuando estés conectado a una instancia de sh0)
- Copiar comandos curl para cualquier endpoint
utoipa. Siempre está sincronizado con los endpoints API reales en tu versión de sh0.Especificación OpenAPI
sh0 expone una especificación OpenAPI 3.1 completa que describe cada endpoint, parámetro, cuerpo de solicitud y tipo de respuesta. La especificación se autogenera desde el código fuente Rust usando utoipa, asegurando que siempre sea precisa y esté actualizada.
La especificación está disponible en:
# JSON format
curl https://your-server:9000/api/openapi.json
# YAML format
curl https://your-server:9000/api/openapi.yamlGrupos de endpoints
La API está organizada en grupos lógicos. Aquí hay un resumen de las principales categorías de endpoints:
Apps
Gestiona el ciclo de vida de aplicaciones -- crear, configurar, iniciar, detener, reiniciar y eliminar apps.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/apps | Listar todas las aplicaciones |
| POST | /api/apps | Crear una nueva aplicación |
| GET | /api/apps/:id | Obtener detalles de la app |
| PUT | /api/apps/:id | Actualizar configuración de la app |
| DELETE | /api/apps/:id | Eliminar una aplicación |
| POST | /api/apps/:id/restart | Reiniciar una aplicación |
Despliegues
Activar despliegues, ver logs de build, rollback y gestionar historial de despliegues.
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /api/apps/:id/deploy | Activar un nuevo despliegue |
| GET | /api/apps/:id/deployments | Listar historial de despliegues |
| POST | /api/apps/:id/rollback | Revertir a un despliegue anterior |
Dominios y SSL
Agregar dominios personalizados, verificar DNS y gestionar certificados SSL.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/domains | Listar todos los dominios |
| POST | /api/domains | Agregar un dominio personalizado |
| POST | /api/domains/verify | Verificar DNS del dominio |
| GET | /api/certificates | Listar certificados SSL |
Bases de datos
Provisionar bases de datos, gestionar respaldos y obtener cadenas de conexión.
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /api/databases | Crear una nueva base de datos |
| GET | /api/databases/:id | Obtener detalles de base de datos + cadena de conexión |
| POST | /api/databases/:id/backup | Activar un respaldo manual |
| POST | /api/databases/:id/restore | Restaurar desde un respaldo |
Otros endpoints
La API también cubre estas categorías de recursos:
| Categoría | Endpoints | Descripción |
|---|---|---|
| Variables de entorno | 8 endpoints | CRUD para variables de entorno, importación masiva, gestión de secretos |
| Almacenamiento y montajes | 6 endpoints | Gestión de volúmenes, proveedores de almacenamiento |
| Escalado | 4 endpoints | Escalado manual, reglas de autoescalado |
| Monitoreo | 12 endpoints | Métricas, alertas, verificaciones de disponibilidad, estado de salud |
| Trabajos cron | 5 endpoints | Programar, listar, actualizar, eliminar, ejecutar trabajos cron |
| Equipo y auth | 15 endpoints | Login, 2FA, sesiones, miembros del equipo, claves API |
| Claves SSH | 4 endpoints | Agregar, listar, eliminar claves SSH |
| Nodos | 8 endpoints | Gestión multiservidor, salud de nodos |
| Servicios | 8 endpoints | URL de subservicios, estado, reiniciar, detener, iniciar, credenciales |
| Copias de seguridad | 11 endpoints | Activar, listar, restaurar, descargar copias de seguridad, gestionar programaciones |
| Certificados | 6 endpoints | Gestión de certificados SSL, generación de CSR, modos SSL |
| Proyectos | 11 endpoints | CRUD de proyectos, gestión de miembros, registros de auditoría |
| Redirecciones | 5 endpoints | Reglas de redirección de URL, crear, actualizar, activar/desactivar, eliminar |
| Entornos de vista previa | 4 endpoints | Despliegues de vista previa de PR, configuración, limpieza |
| Configuración | 6 endpoints | Configuración del servidor, dominio, Cloudflare, ACME, DNS |
| Plantillas | 5 endpoints | Navegar y desplegar desde más de 170 plantillas |
| Webhooks | 6 endpoints | Webhooks Git, hooks de despliegue, hooks de notificación |
Descargar la especificación OpenAPI
Puedes descargar la especificación OpenAPI para usar con herramientas de documentación, frameworks de pruebas o generadores de código.
# 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.yamlEl archivo de especificación puede importarse en herramientas como:
- Postman: Importa la especificación para crear una colección con todos los endpoints preconfigurados.
- Insomnia: Importar para un workspace API interactivo.
- Swagger UI: Aloja tu propia documentación API interactiva.
- Redocly: Genera documentación API elegante.
Usar con generadores de código
La especificación OpenAPI puede usarse con generadores de código para crear clientes API tipados en cualquier lenguaje:
Cliente TypeScript (usando openapi-typescript):
npx openapi-typescript https://your-server:9000/api/openapi.json \
-o ./src/lib/api/sh0-types.tsCliente Python (usando openapi-python-client):
pip install openapi-python-client
openapi-python-client generate \
--url https://your-server:9000/api/openapi.jsonCliente Go (usando oapi-codegen):
go install github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@latest
oapi-codegen -package sh0 sh0-openapi.json > sh0_client.go