APIs Externas
Esses endpoints são projetados para uso por outras aplicações e integrações, por exemplo Homepage.
Obter Resumo Geral - /api/summary
-
Endpoint:
/api/summary -
Method: GET
-
Description: Recupera um resumo de todas as operações de backup em todos os servidores.
-
Resposta:
{"totalServers": 3,"totalBackupsRuns": 9,"totalBackups": 9,"totalUploadedSize": 2397229507,"totalStorageUsed": 43346796938,"totalBackupSize": 126089687807,"overdueBackupsCount": 2,"secondsSinceLastBackup": 7200} -
Respostas de Erro:
500: Erro do servidor ao buscar dados do resumo
-
Notas:
- Na versão 0.5.x, o campo
totalBackupedSizefoi substituído portotalBackupSize - Na versão 0.7.x, o campo
totalMachinesfoi substituído portotalServers - O campo
overdueBackupsCountmostra o número de backups atualmente atrasados - O campo
secondsSinceLastBackupmostra o tempo em segundos desde o último backup em todos os servidores - Retorna resposta de contingência com zeros se a busca de dados falhar
- Observação: Para uso interno no painel, considere usar
/api/dashboard, que inclui esses dados mais informações adicionais
- Na versão 0.5.x, o campo
Obter Último Backup - /api/lastbackup/:serverId
- Endpoint:
/api/lastbackup/:serverId - Method: GET
- Description: Recupera as informações do último backup para um servidor específico.
- Parâmetros:
serverId: o identificador do servidor (ID ou nome)
nota
O identificador do servidor deve ser codificado em URL.
-
Resposta:
{"server": {"id": "unique-server-id","name": "Server Name","backup_name": "Backup Name","backup_id": "backup-id","created_at": "2024-03-20T10:00:00Z"},"latest_backup": {"id": "backup-id","server_id": "unique-server-id","name": "Backup Name","date": "2024-03-20T10:00:00Z","status": "Success","warnings": 0,"errors": 0,"messages": 150,"fileCount": 249426,"fileSize": 113395849938,"uploadedSize": 331318892,"duration": "00:38:31","duration_seconds": 2311.6018052,"durationInMinutes": 38.52669675333333,"knownFileSize": 27203688543,"backup_list_count": 10,"messages_array": ["message1", "message2"],"warnings_array": ["warning1"],"errors_array": [],"available_backups": ["v1", "v2", "v3"]},"status": 200} -
Respostas de Erro:
404: Servidor não encontrado500: Erro interno do servidor
-
Notas:
- Na versão 0.7.x, a chave do objeto de resposta mudou de
machineparaserver - O identificador do servidor pode ser ID ou nome
- Retorna null para latest_backup se não houver backups
- Inclui cabeçalhos de controle de cache para evitar armazenamento em cache
- Na versão 0.7.x, a chave do objeto de resposta mudou de
Obter Últimos Backups - /api/lastbackups/:serverId
- Endpoint:
/api/lastbackups/:serverId - Method: GET
- Description: Recupera as informações dos últimos backups para todos os backups configurados (por exemplo, 'Arquivos', 'Bancos de Dados') em um servidor específico.
- Parâmetros:
serverId: o identificador do servidor (ID ou nome)
nota
O identificador do servidor deve ser codificado em URL.
-
Resposta:
{"server": {"id": "unique-server-id","name": "Server Name","backup_name": "Default Backup","backup_id": "backup-id","created_at": "2024-03-20T10:00:00Z"},"latest_backups": [{"id": "backup1","server_id": "unique-server-id","name": "Files","date": "2024-03-20T10:00:00Z","status": "Success","warnings": 0,"errors": 0,"messages": 150,"fileCount": 249426,"fileSize": 113395849938,"uploadedSize": 331318892,"duration": "00:38:31","duration_seconds": 2311.6018052,"durationInMinutes": 38.52669675333333,"knownFileSize": 27203688543,"backup_list_count": 10,"messages_array": "[\"message1\", \"message2\"]","warnings_array": "[\"warning1\"]","errors_array": "[]","available_backups": ["v1", "v2", "v3"]},{"id": "backup2","server_id": "unique-server-id","name": "Databases","date": "2024-03-20T11:00:00Z","status": "Success","warnings": 1,"errors": 0,"messages": 75,"fileCount": 125000,"fileSize": 56789012345,"uploadedSize": 123456789,"duration": "00:25:15","duration_seconds": 1515.1234567,"durationInMinutes": 25.25205761166667,"knownFileSize": 12345678901,"backup_list_count": 5,"messages_array": ["message1"],"warnings_array": ["warning1"],"errors_array": [],"available_backups": ["v1", "v2"]}],"backup_jobs_count": 2,"backup_names": ["Files", "Databases"],"status": 200} -
Respostas de Erro:
404: Servidor não encontrado500: Erro interno do servidor
-
Notas:
- Na versão 0.7.x, a chave do objeto de resposta mudou de
machineparaserver, e o campobackup_types_countfoi renomeado parabackup_jobs_count - O identificador do servidor pode ser ID ou nome
- Retorna o último backup para cada tarefa de backup (backup_name) que o servidor possui
- Diferentemente de
/api/lastbackup/:serverId, que retorna apenas o backup mais recente do servidor (independente da tarefa de backup) - Inclui cabeçalhos de controle de cache para evitar armazenamento em cache
- Na versão 0.7.x, a chave do objeto de resposta mudou de
Enviar Dados de Backup - /api/upload
-
Endpoint:
/api/upload -
Method: POST
-
Description: Envia dados da operação de backup para um servidor. Suporta detecção de execuções duplicadas de backup e envia notificações.
-
Corpo da Requisição: JSON enviado pelo Duplicati com as seguintes opções:
--send-http-url=http://my.local.server:9666/api/upload--send-http-result-output-format=Json--send-http-log-level=Information -
Resposta:
{"success": true} -
Respostas de Erro:
400: Campos obrigatórios ausentes nas seções Extra ou Data, ou MainOperation inválido409: Dados de backup duplicados (ignorados)500: Erro do servidor ao processar dados de backup
-
Notas:
- Processa apenas operações de backup (MainOperation deve ser "Backup")
- Valida campos obrigatórios na seção Extra: machine-id, machine-name, backup-name, backup-id
- Valida campos obrigatórios na seção Data: ParsedResult, BeginTime, Duration
- Detecta automaticamente execuções duplicadas de backup e retorna status 409
- Envia notificações após a inserção bem-sucedida do backup (se configurado)
- Registra os dados da requisição em um arquivo no diretório
datana raiz do projeto em modo de desenvolvimento para depuração - Usa transação para consistência de dados