Docs/ Referência da API/ Referência Completa

Referência Completa da API

A API sh0 completa com 180+ endpoints, um explorador interativo e uma especificação OpenAPI para download para geração de código.

Explorador de API Interativo

A forma mais fácil de explorar a API sh0 é pelo explorador de API interativo, disponível em:

  • Dashboard: Navegue até API Docs na barra lateral do seu dashboard sh0.
  • Website: Visite /api no site do sh0.
Explorador de API interativo mostrando lista de endpoints com previews de requisição/resposta

O explorador permite:

  • Navegar por todos os endpoints organizados por categoria
  • Ver parâmetros de requisição, headers e esquemas de body
  • Ver respostas de exemplo para cada endpoint
  • Testar endpoints diretamente do navegador (quando conectado a uma instância sh0)
  • Copiar comandos curl para qualquer endpoint
Tip
O explorador de API é gerado automaticamente a partir da spec OpenAPI usando utoipa. Está sempre em sincronia com os endpoints API reais na sua versão do sh0.

Especificação OpenAPI

sh0 expõe uma especificação OpenAPI 3.1 completa que descreve cada endpoint, parâmetro, body de requisição e tipo de resposta. A spec é gerada automaticamente do código-fonte Rust usando utoipa, garantindo que está sempre precisa e atualizada.

A spec está disponível em:

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

# YAML format
curl https://your-server:9000/api/openapi.yaml
Spec OpenAPI renderizada em um visualizador de documentação

Grupos de Endpoints

A API é organizada em grupos lógicos. Aqui está um resumo das principais categorias de endpoints:

Apps

Gerenciar ciclo de vida de aplicações — criar, configurar, iniciar, parar, reiniciar e excluir apps.

MétodoEndpointDescrição
GET/api/appsListar todas as aplicações
POST/api/appsCriar uma nova aplicação
GET/api/apps/:idObter detalhes do app
PUT/api/apps/:idAtualizar configuração do app
DELETE/api/apps/:idExcluir uma aplicação
POST/api/apps/:id/restartReiniciar uma aplicação

Deploys

Acionar deploys, visualizar logs de build, fazer rollback e gerenciar histórico de deploy.

MétodoEndpointDescrição
POST/api/apps/:id/deployAcionar um novo deploy
GET/api/apps/:id/deploymentsListar histórico de deploys
POST/api/apps/:id/rollbackRollback para um deploy anterior

Domínios & SSL

Adicionar domínios personalizados, verificar DNS e gerenciar certificados SSL.

MétodoEndpointDescrição
GET/api/domainsListar todos os domínios
POST/api/domainsAdicionar um domínio personalizado
POST/api/domains/verifyVerificar DNS do domínio
GET/api/certificatesListar certificados SSL

Bancos de Dados

Provisionar bancos de dados, gerenciar backups e obter strings de conexão.

MétodoEndpointDescrição
POST/api/databasesCriar um novo banco de dados
GET/api/databases/:idObter detalhes do banco + string de conexão
POST/api/databases/:id/backupAcionar um backup manual
POST/api/databases/:id/restoreRestaurar a partir de um backup

Outros Endpoints

A API também cobre estas categorias de recursos:

CategoriaEndpointsDescrição
Variáveis de Ambiente8 endpointsCRUD para vars de ambiente, importação em lote, gerenciamento de secrets
Armazenamento & Montagens6 endpointsGerenciamento de volumes, provedores de armazenamento
Scaling4 endpointsScaling manual, regras de autoscaling
Monitoramento12 endpointsMétricas, alertas, verificações de uptime, status de saúde
Cron Jobs5 endpointsAgendar, listar, atualizar, excluir, executar cron jobs
Equipe & Autenticação15 endpointsLogin, 2FA, sessões, membros da equipe, chaves API
Chaves SSH4 endpointsAdicionar, listar, excluir chaves SSH
Nós8 endpointsGerenciamento multi-servidor, saúde do nó
Serviços8 endpointsURLs de subserviços, status, reiniciar, parar, iniciar, credenciais
Backups11 endpointsAcionar, listar, restaurar, baixar backups, gerenciar agendamentos
Certificados6 endpointsGerenciamento de certificados SSL, geração de CSR, modos SSL
Projetos11 endpointsCRUD de projetos, gerenciamento de membros, logs de auditoria
Redirecionamentos5 endpointsRegras de redirecionamento de URL, criar, atualizar, ativar/desativar, excluir
Ambientes de Preview4 endpointsDeploys de preview de PR, configurações, limpeza
Configurações6 endpointsConfiguração do servidor, domínio, Cloudflare, ACME, DNS
Templates5 endpointsNavegar e fazer deploy de mais de 170 templates
Webhooks6 endpointsWebhooks Git, hooks de deploy, hooks de notificação
Visão geral dos grupos de endpoints API no explorador

Baixando a Spec OpenAPI

Você pode baixar a especificação OpenAPI para usar com ferramentas de documentação, frameworks de teste ou geradores 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

O arquivo spec pode ser importado em ferramentas como:

  • Postman: Importe a spec para criar uma collection com todos os endpoints pré-configurados.
  • Insomnia: Importe para um workspace de API interativo.
  • Swagger UI: Hospede sua própria documentação de API interativa.
  • Redocly: Gere documentação de API elegante.
Spec OpenAPI importada no Postman

Usando com Geradores de Código

A especificação OpenAPI pode ser usada com geradores de código para criar clientes API tipados em qualquer linguagem:

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
Clientes gerados oferecem tipagem completa e autocompletar no seu IDE. São especialmente úteis ao construir pipelines CI/CD ou ferramentas de automação personalizadas que interagem com sua instância sh0.
Autocompletar TypeScript de tipos API gerados no VS Code