मुख्य सामग्री पर जाएं

पिछड़े संगतता विरोधी एपीआई परिवर्तन

यह दस्तावेज़ डुप्लिस्टेटस के अलग-अलग संस्करणों में बाहरी एपीआई एंडपॉइंट्स में हुए ब्रेकिंग परिवर्तनों को रेखांकित करता है। बाहरी एपीआई एंडपॉइंट्स वे हैं जिन्हें अन्य एप्लिकेशन और एकीकरण (जैसे, होमपेज एकीकरण) द्वारा उपयोग के लिए डिज़ाइन किया गया है।

अवलोकन​

यह दस्तावेज़ बाहरी एपीआई एंडपॉइंट्स में ब्रेकिंग परिवर्तनों को कवर करता है जो एकीकरण, स्क्रिप्ट्स और ऐसे एप्लिकेशन्स को प्रभावित करते हैं जो इन एंडपॉइंट्स का उपभोग करते हैं। वेब इंटरफेस द्वारा उपयोग किए जाने वाले आंतरिक एपीआई एंडपॉइंट्स के लिए, परिवर्तनों को स्वचालित रूप से संभाला जाता है और मैनुअल अपडेट की आवश्यकता नहीं होती है।

नोट

बाहरी एपीआई एंडपॉइंट्स को संभव होने पर पिछड़े संगतता के लिए बनाए रखा जाता है। ब्रेकिंग परिवर्तन केवल तभी परिचयित किए जाते हैं जब यह अनुकूलता, सुरक्षा या कार्यक्षमता में सुधार के लिए आवश्यक हो।

संस्करण-विशिष्ट परिवर्तन​

संस्करण 1.3.0​

बाहरी एपीआई एंडपॉइंट्स में कोई ब्रेकिंग परिवर्तन नहीं

संस्करण 1.2.1​

बाहरी एपीआई एंडपॉइंट्स में कोई ब्रेकिंग परिवर्तन नहीं

संस्करण 1.1.x​

बाहरी एपीआई एंडपॉइंट्स में कोई ब्रेकिंग परिवर्तन नहीं

संस्करण 1.0.x​

बाहरी एपीआई एंडपॉइंट्स में कोई ब्रेकिंग परिवर्तन नहीं

संस्करण 0.9.x​

बाहरी एपीआई एंडपॉइंट्स में कोई ब्रेकिंग परिवर्तन नहीं

संस्करण 0.9.x प्रमाणीकरण परिचयित करता है और सभी उपयोगकर्ताओं को लॉग इन करने की आवश्यकता होती है। संस्करण 0.8.x से अपग्रेड करते समय:

  1. प्रमाणीकरण आवश्यक: सभी पृष्ठों और आंतरिक एपीआई एंडपॉइंट्स को अब प्रमाणीकरण की आवश्यकता होती है
  2. डिफ़ॉल्ट एडमिन खाता: एक डिफ़ॉल्ट एडमिन खाता स्वचालित रूप से बनाया जाता है:
    • उपयोगकर्ता नाम: admin
    • पासवर्ड: Duplistatus09 (पहली लॉगिन पर बदला जाना चाहिए)
  3. सत्र अमान्य: सभी मौजूदा सत्र अमान्य हो जाते हैं
  4. बाहरी एपीआई पहुंच: बाहरी एपीआई एंडपॉइंट्स (/api/summary, /api/lastbackup, /api/lastbackups, /api/upload) एकीकरण और duplicati के संगतता के लिए प्रमाणीकृत रहते हैं

संस्करण 0.8.x​

बाहरी एपीआई एंडपॉइंट्स में कोई ब्रेकिंग परिवर्तन नहीं

संस्करण 0.8.x बाहरी एपीआई एंडपॉइंट्स में कोई ब्रेकिंग परिवर्तन परिचयित नहीं करता है। निम्नलिखित एंडपॉइंट्स अपरिवर्तित रहते हैं:

  • /api/summary - प्रतिक्रिया संरचना अपरिवर्तित
  • /api/lastbackup/{serverId} - प्रतिक्रिया संरचना अपरिवर्तित
  • /api/lastbackups/{serverId} - प्रतिक्रिया संरचना अपरिवर्तित
  • /api/upload - अनुरोध/प्रतिक्रिया प्रारूप अपरिवर्तित

सुरक्षा में सुधार​

जबकि बाहरी API एंडपॉइंट में कोई ब्रेकिंग परिवर्तन नहीं किया गया था, संस्करण 0.8.x में सुरक्षा में सुधार शामिल है:

  • CSRF सुरक्षा: स्टेट-चेंजिंग API अनुरोधों के लिए CSRF टोकन सत्यापन लागू किया जाता है, लेकिन बाहरी API अभी भी संगत हैं
  • पासवर्ड सुरक्षा: सुरक्षा कारणों से पासवर्ड एंडपॉइंट केवल उपयोगकर्ता इंटरफ़ेस के लिए प्रतिबंधित हैं
नोट

ये सुरक्षा सुधार बैकअप डेटा को पढ़ने के लिए उपयोग किए जाने वाले बाहरी API एंडपॉइंट को प्रभावित नहीं करते हैं। यदि आपके पास आंतरिक एंडपॉइंट का उपयोग करने वाले कस्टम स्क्रिप्ट हैं, तो उन्हें CSRF टोकन हैंडलिंग की आवश्यकता हो सकती है।

संस्करण 0.7.x​

संस्करण 0.7.x बाहरी एकीकरण को अपडेट करने की आवश्यकता के लिए बाहरी API एंडपॉइंट में कई ब्रेकिंग परिवर्तन प्रस्तुत करता है।

ब्रेकिंग परिवर्तन​

फ़ील्ड का नाम बदलना​
  • totalMachines → totalServers में /api/summary एंडपॉइंट
  • machine → server में API प्रतिक्रिया ऑब्जेक्ट
  • backup_types_count → backup_jobs_count में /api/lastbackups/{serverId} एंडपॉइंट
एंडपॉइंट पथ परिवर्तन​
  • सभी API एंडपॉइंट पहले /api/machines/... का उपयोग कर रहे थे अब /api/servers/... का उपयोग करते हैं
  • पैरामीटर के नाम machine_id से server_id में बदल दिए गए हैं (URL एन्कोडिंग अभी भी दोनों के साथ काम करता है)

प्रतिक्रिया संरचना परिवर्तन​

कई एंडपॉइंट के लिए प्रतिक्रिया संरचना को एकरूपता के लिए अपडेट किया गया है:

/api/summary​

पहले (0.6.x और उससे पहले):

{
"totalMachines": 3,
"totalBackupsRuns": 9,
"totalBackups": 9,
"totalUploadedSize": 2397229507,
"totalStorageUsed": 43346796938,
"totalBackupSize": 126089687807,
"overdueBackupsCount": 2,
"secondsSinceLastBackup": 7200
}

बाद में (0.7.x+):

{
"totalServers": 3, // Changed from "totalMachines"
"totalBackupsRuns": 9,
"totalBackups": 9,
"totalUploadedSize": 2397229507,
"totalStorageUsed": 43346796938,
"totalBackupSize": 126089687807,
"overdueBackupsCount": 2,
"secondsSinceLastBackup": 7200
}
/api/lastbackup/{serverId}​

पहले (0.6.x और उससे पहले):

{
"machine": { // Changed to "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": {
// ... backup details
},
"status": 200
}

बाद में (0.7.x+):

{
"server": { // Changed from "machine"
"id": "unique-server-id",
"name": "Server Name",
"backup_name": "Backup Name",
"backup_id": "backup-id",
"created_at": "2024-03-20T10:00:00Z"
},
"latest_backup": {
// ... backup details
},
"status": 200
}
/api/lastbackups/{serverId}​

पहले (0.6.x और उससे पहले):

{
"machine": { // Changed to "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": [
// ... backup array
],
"backup_types_count": 2, // Changed to "backup_jobs_count"
"backup_names": ["Files", "Databases"],
"status": 200
}

बाद में (0.7.x+):

{
"server": { // Changed from "machine"
"id": "unique-server-id",
"name": "Server Name",
"backup_name": "Default Backup",
"backup_id": "backup-id",
"created_at": "2024-03-20T10:00:00Z"
},
"latest_backups": [
// ... backup array
],
"backup_jobs_count": 2, // Changed from "backup_types_count"
"backup_names": ["Files", "Databases"],
"status": 200
}

माइग्रेशन चरण​

यदि आप 0.7.x से पहले के संस्करण से अपग्रेड कर रहे हैं, तो इन चरणों का पालन करें:

  1. फ़ील्ड संदर्भ अपडेट करें: पुराने फ़ील्ड नामों के सभी संदर्भों को नए लोगों के साथ बदलें

    • totalMachines → totalServers
    • backup_types_count → backup_jobs_count
  2. ऑब्जेक्ट कुंजियाँ अपडेट करें: प्रतिक्रिया पार्सिंग में machine को server में बदलें

    • response.machine तक पहुँचने वाले किसी भी कोड को response.server में अपडेट करें
  3. एंडपॉइंट पथ अपडेट करें: /api/machines/... का उपयोग करने वाले किसी भी एंडपॉइंट को /api/servers/... में बदलें

    • नोट: पैरामीटर अभी भी पुराने पहचानकर्ता स्वीकार कर सकते हैं; पथ अपडेट किए जाने चाहिए
  4. इंटीग्रेशन की जाँच करें: सत्यापित करें कि आपका इंटीग्रेशन नई एपीआई संरचना के साथ काम करता है

    • अपने एप्लिकेशन द्वारा उपयोग किए जाने वाले सभी एंडपॉइंट की जाँच करें
    • सत्यापित करें कि प्रतिक्रिया पार्सिंग नई फ़ील्ड नामों को सही ढंग से संभालता है
  5. दस्तावेज़ीकरण अपडेट करें: पुराने एपीआई का संदर्भ देने वाले किसी भी आंतरिक दस्तावेज़ीकरण को अपडेट करें

    • एपीआई उदाहरण और फ़ील्ड नाम संदर्भ अपडेट करें

सुसंगतता​

पिछड़ता सुसंगतता​

  • संस्करण 1.2.1: 1.1.x एपीआई संरचना के साथ पूरी तरह से पिछड़ता सुसंगत
  • संस्करण 1.1.x: 1.0.x एपीआई संरचना के साथ पूरी तरह से पिछड़ता सुसंगत
  • संस्करण 1.0.x: 0.9.x एपीआई संरचना के साथ पूरी तरह से पिछड़ता सुसंगत
  • संस्करण 0.9.x: 0.8.x एपीआई संरचना के साथ पूरी तरह से पिछड़ता सुसंगत
  • संस्करण 0.8.x: 0.7.x एपीआई संरचना के साथ पूरी तरह से पिछड़ता सुसंगत
  • संस्करण 0.7.x: 0.7.x से पहले के संस्करणों के साथ पिछड़ता सुसंगत नहीं है
    • पुराने फ़ील्ड नाम काम नहीं करेंगे
    • पुराने एंडपॉइंट पथ काम नहीं करेंगे

भविष्य का समर्थन​

  • 0.7.x से पहले के संस्करणों से पुराने फ़ील्ड नाम समर्थित नहीं हैं
  • 0.7.x से पहले के संस्करणों से पुराने एंडपॉइंट पथ समर्थित नहीं हैं
  • भविष्य के संस्करण वर्तमान एपीआई संरचना को बनाए रखेंगे जब तक कि ब्रेकिंग परिवर्तन आवश्यक न हों

बाहरी एपीआई एंडपॉइंट का सारांश​

पिछड़ता सुसंगतता के लिए निम्नलिखित बाहरी एपीआई एंडपॉइंट बनाए रखे गए हैं और अप्रमाणित रहेंगे:

एंडपॉइंटविधिविवरणब्रेकिंग परिवर्तन
/api/summaryGETबैकअप संचालनों का समग्र सारांश0.7.x: totalMachines → totalServers
/api/lastbackup/{serverId}GETएक सर्वर के लिए नवीनतम बैकअप0.7.x: machine → server
/api/lastbackups/{serverId}GETसभी बैकअप जॉब्स के लिए नवीनतम बैकअप0.7.x: machine → server, backup_types_count → backup_jobs_count
/api/uploadPOSTduplicati से बैकअप डेटा अपलोड करेंकोई ब्रेकिंग परिवर्तन नहीं

सहायता की आवश्यकता है?​

यदि आपको अपना एकीकरण अपडेट करने में सहायता की आवश्यकता है:

  • एपीआई संदर्भ: वर्तमान एंडपॉइंट दस्तावेज़ीकरण के लिए एपीआई संदर्भ देखें
  • बाहरी एपीआई: विस्तृत एंडपॉइंट दस्तावेज़ीकरण के लिए बाहरी एपीआई देखें
  • माइग्रेशन गाइड: सामान्य माइग्रेशन जानकारी के लिए माइग्रेशन गाइड समीक्षा करें
  • रिलीज़ नोट्स: अतिरिक्त संदर्भ के लिए संस्करण-विशिष्ट रिलीज़ नोट्स समीक्षा करें
  • समर्थन: समर्थन के लिए GitHub पर एक मुद्दा खोलें