API externes
Ces points de terminaison sont conçus pour être utilisés par d'autres applications et intégrations, par exemple Homepage.
Obtenir un résumé général - /api/summary
-
Point de terminaison :
/api/summary -
Méthode : GET
-
Description : Récupère un résumé de toutes les opérations de sauvegarde sur l'ensemble des serveurs.
-
Réponse :
{"totalServers": 3,"totalBackupsRuns": 9,"totalBackups": 9,"totalUploadedSize": 2397229507,"totalStorageUsed": 43346796938,"totalBackupSize": 126089687807,"overdueBackupsCount": 2,"secondsSinceLastBackup": 7200} -
Réponses d'erreur :
500: Erreur du serveur lors de la récupération des données de résumé
-
Notes :
- Dans la version 0.5.x, le champ
totalBackupedSizea été remplacé partotalBackupSize - Dans la version 0.7.x, le champ
totalMachinesa été remplacé partotalServers - Le champ
overdueBackupsCountindique le nombre de sauvegardes actuellement en retard - Le champ
secondsSinceLastBackupindique le temps en secondes depuis la dernière sauvegarde sur tous les serveurs - Renvoie une réponse de secours avec des valeurs nulles si la récupération des données échoue
- Note : Pour une utilisation interne du tableau de bord, envisagez d'utiliser
/api/dashboard, qui inclut ces données ainsi que des informations supplémentaires
- Dans la version 0.5.x, le champ
Obtenir la dernière sauvegarde - /api/lastbackup/:serverId
- Point de terminaison :
/api/lastbackup/:serverId - Méthode : GET
- Description : Récupère les informations sur la dernière sauvegarde pour un serveur spécifique.
- Paramètres :
serverId: l'identifiant du serveur (ID ou nom)
L'identifiant du serveur doit être encodé en URL.
-
Réponse :
{"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} -
Réponses d'erreur :
404: Serveur non trouvé500: Erreur interne du serveur
-
Notes :
- Dans la version 0.7.x, la clé de l'objet de réponse est passée de
machineàserver - L'identifiant du serveur peut être soit l'ID, soit le nom
- Renvoie null pour latest_backup s'il n'existe aucune sauvegarde
- Inclut des en-têtes de contrôle de cache pour empêcher la mise en cache
- Dans la version 0.7.x, la clé de l'objet de réponse est passée de
Obtenir les dernières sauvegardes - /api/lastbackups/:serverId
- Point de terminaison :
/api/lastbackups/:serverId - Méthode : GET
- Description : Récupère les informations sur la dernière sauvegarde pour toutes les sauvegardes configurées (par exemple 'Fichiers', 'Bases de données') sur un serveur spécifique.
- Paramètres :
serverId: l'identifiant du serveur (ID ou nom)
L'identifiant du serveur doit être encodé en URL.
-
Réponse :
{"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} -
Réponses d'erreur :
404: Serveur non trouvé500: Erreur interne du serveur
-
Notes :
- Dans la version 0.7.x, la clé de l'objet de réponse est passée de
machineàserver, et le champbackup_types_counta été renommé enbackup_jobs_count - L'identifiant du serveur peut être soit l'ID, soit le nom
- Renvoie la dernière sauvegarde pour chaque tâche de sauvegarde (backup_name) que possède le serveur
- Contrairement à
/api/lastbackup/:serverId, qui renvoie uniquement la sauvegarde la plus récente du serveur (indépendamment de la tâche de sauvegarde) - Inclut des en-têtes de contrôle de cache pour empêcher la mise en cache
- Dans la version 0.7.x, la clé de l'objet de réponse est passée de
Téléverser les données de sauvegarde - /api/upload
-
Point de terminaison :
/api/upload -
Méthode : POST
-
Description : Téléverse les données d'opération de sauvegarde pour un serveur. Prend en charge la détection des exécutions de sauvegarde en double et envoie des notifications.
-
Corps de la requête : JSON envoyé par Duplicati avec les options suivantes :
--send-http-url=http://my.local.server:9666/api/upload--send-http-result-output-format=Json--send-http-log-level=Information -
Réponse :
{"success": true} -
Réponses d'erreur :
400: Champs requis manquants dans les sections Extra ou Data, ou MainOperation non valide409: Données de sauvegarde en double (ignorées)500: Erreur du serveur lors du traitement des données de sauvegarde
-
Notes :
- Ne traite que les opérations de sauvegarde (MainOperation doit être "Backup")
- Valide les champs requis dans la section Extra : machine-id, machine-name, backup-name, backup-id
- Valide les champs requis dans la section Data : ParsedResult, BeginTime, Duration
- Détecte automatiquement les exécutions de sauvegarde en double et renvoie un statut 409
- Envoie des notifications après une insertion réussie de la sauvegarde (si configuré)
- Journalise les données de la requête dans un fichier du répertoire
dataà la racine du projet en mode développement, à des fins de débogage - Utilise une transaction pour assurer la cohérence des données