Docs/ Referencia API/ Referencia completa

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.
Explorador API interactivo mostrando lista de endpoints con previsualizaciones de solicitud/respuesta

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
Tip
El explorador API se genera automáticamente desde la especificación OpenAPI usando 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:

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

# YAML format
curl https://your-server:9000/api/openapi.yaml
Especificación OpenAPI renderizada en un visor de documentación

Grupos 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étodoEndpointDescripción
GET/api/appsListar todas las aplicaciones
POST/api/appsCrear una nueva aplicación
GET/api/apps/:idObtener detalles de la app
PUT/api/apps/:idActualizar configuración de la app
DELETE/api/apps/:idEliminar una aplicación
POST/api/apps/:id/restartReiniciar una aplicación

Despliegues

Activar despliegues, ver logs de build, rollback y gestionar historial de despliegues.

MétodoEndpointDescripción
POST/api/apps/:id/deployActivar un nuevo despliegue
GET/api/apps/:id/deploymentsListar historial de despliegues
POST/api/apps/:id/rollbackRevertir a un despliegue anterior

Dominios y SSL

Agregar dominios personalizados, verificar DNS y gestionar certificados SSL.

MétodoEndpointDescripción
GET/api/domainsListar todos los dominios
POST/api/domainsAgregar un dominio personalizado
POST/api/domains/verifyVerificar DNS del dominio
GET/api/certificatesListar certificados SSL

Bases de datos

Provisionar bases de datos, gestionar respaldos y obtener cadenas de conexión.

MétodoEndpointDescripción
POST/api/databasesCrear una nueva base de datos
GET/api/databases/:idObtener detalles de base de datos + cadena de conexión
POST/api/databases/:id/backupActivar un respaldo manual
POST/api/databases/:id/restoreRestaurar desde un respaldo

Otros endpoints

La API también cubre estas categorías de recursos:

CategoríaEndpointsDescripción
Variables de entorno8 endpointsCRUD para variables de entorno, importación masiva, gestión de secretos
Almacenamiento y montajes6 endpointsGestión de volúmenes, proveedores de almacenamiento
Escalado4 endpointsEscalado manual, reglas de autoescalado
Monitoreo12 endpointsMétricas, alertas, verificaciones de disponibilidad, estado de salud
Trabajos cron5 endpointsProgramar, listar, actualizar, eliminar, ejecutar trabajos cron
Equipo y auth15 endpointsLogin, 2FA, sesiones, miembros del equipo, claves API
Claves SSH4 endpointsAgregar, listar, eliminar claves SSH
Nodos8 endpointsGestión multiservidor, salud de nodos
Servicios8 endpointsURL de subservicios, estado, reiniciar, detener, iniciar, credenciales
Copias de seguridad11 endpointsActivar, listar, restaurar, descargar copias de seguridad, gestionar programaciones
Certificados6 endpointsGestión de certificados SSL, generación de CSR, modos SSL
Proyectos11 endpointsCRUD de proyectos, gestión de miembros, registros de auditoría
Redirecciones5 endpointsReglas de redirección de URL, crear, actualizar, activar/desactivar, eliminar
Entornos de vista previa4 endpointsDespliegues de vista previa de PR, configuración, limpieza
Configuración6 endpointsConfiguración del servidor, dominio, Cloudflare, ACME, DNS
Plantillas5 endpointsNavegar y desplegar desde más de 170 plantillas
Webhooks6 endpointsWebhooks Git, hooks de despliegue, hooks de notificación
Resumen de grupos de endpoints API en el explorador

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.

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

El 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.
Especificación OpenAPI importada en Postman

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):

Terminal
npx openapi-typescript https://your-server:9000/api/openapi.json \
  -o ./src/lib/api/sh0-types.ts

Cliente Python (usando openapi-python-client):

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

Cliente Go (usando 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
Los clientes generados te dan seguridad de tipos completa y autocompletado en tu IDE. Son especialmente útiles al construir pipelines CI/CD o herramientas de automatización personalizadas que interactúan con tu instancia de sh0.
Autocompletado de TypeScript desde tipos API generados en VS Code