VPS.org API

डेटी एपीआई प्रलेख

स्नैपशॉट एपीआई

किसी विशेष समय पर सर्वर की स्थिति को तुरंत पुनर्स्थापित करने के लिए सर्वर स्नैपशॉट प्रबंधित करें। स्नैपशॉट आपके सर्वर की संपूर्ण स्थिति को कैप्चर करते हैं।

अंतिमबिंदुओं 4 endpoints
आधार पथ /api/v1/snapshots
पाना /api/v1/snapshots/

सभी स्नैपशॉट सूचीबद्ध करें

अपने सभी सर्वरों पर मौजूद सभी स्नैपशॉट की सूची प्राप्त करें।

क्वेरी पैरामीटर

पैरामीटर प्रकार आवश्यक वर्णन
server_id integer नहीं सर्वर आईडी के आधार पर स्नैपशॉट फ़िल्टर करें

उदाहरण अनुरोध

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/snapshots/?server_id=12345" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
params = {"server_id": 12345}

response = requests.get(url, headers=headers, params=params)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/snapshots/?server_id=12345', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const snapshots = await response.json();
console.log(snapshots);

उदाहरण प्रतिक्रिया

{
  "count": 2,
  "results": [
    {
      "id": 801,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "name": "pre-migration-snapshot",
      "status": "completed",
      "size_mb": 5120,
      "created_at": "2025-01-15T18:30:00Z",
      "description": "Before major migration"
    },
    {
      "id": 798,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "name": "weekly-snapshot-2025-01-08",
      "status": "completed",
      "size_mb": 4856,
      "created_at": "2025-01-08T12:00:00Z",
      "description": "Weekly snapshot"
    }
  ]
}

प्रतिक्रिया स्थिति कोड

200 स्नैपशॉट सूची सफलतापूर्वक प्राप्त कर ली गई है
401 अनधिकृत - अमान्य या अनुपलब्ध प्रमाणीकरण टोकन
रूट /api/v1/snapshots/

स्नैपशॉट बनाएं

सर्वर की वर्तमान स्थिति का स्नेपशॉट बनाएं. स्नैपशॉट पूरे सर्वर की बिन्दु प्रतियों को रखता है.

अनुरोध निकाय पैरामीटर

पैरामीटर प्रकार आवश्यक वर्णन
server_id integer हाँ स्नैपशॉट लेने के लिए सर्वर की आईडी
name string हाँ स्नैपशॉट का नाम (अल्फा न्यूमेरिक, हाइफ़न, अंडरस्कोर सहित)
description string नहीं स्नैपशॉट के लिए वैकल्पिक विवरण

उदाहरण अनुरोध

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/snapshots/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "server_id": 12345,
    "name": "before-update-snapshot",
    "description": "Snapshot before system update"
  }'
import requests

url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "server_id": 12345,
    "name": "before-update-snapshot",
    "description": "Snapshot before system update"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/snapshots/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    server_id: 12345,
    name: 'before-update-snapshot',
    description: 'Snapshot before system update'
  })
});

const snapshot = await response.json();
console.log(snapshot);

उदाहरण प्रतिक्रिया

{
  "id": 802,
  "server": {
    "id": 12345,
    "name": "web-server-01"
  },
  "name": "before-update-snapshot",
  "status": "in_progress",
  "size_mb": null,
  "created_at": "2025-01-16T16:15:00Z",
  "description": "Snapshot before system update",
  "message": "Snapshot is being created. This may take 3-10 minutes depending on server size."
}

प्रतिक्रिया स्थिति कोड

201 स्नैपशॉट निर्माण सफलतापूर्वक शुरू हो गया है।
400 Bad Request - Invalid parameters or snapshot limit reached
401 अनधिकृत - अमान्य या अनुपलब्ध प्रमाणीकरण टोकन
404 Not Found - Server does not exist
टिप्पणीः You can have a maximum of 5 snapshots per server. Creating a snapshot while the server is running may result in filesystem inconsistencies. For best results, stop the server before creating a snapshot.
रूट /api/v1/snapshots/{snapshot_id}/restore/

स्नैपशॉट से पुनर्स्थापित करें

स्नैपशॉट में लिया गया राज्य में सर्वर बहाल करें. यह सर्वर के सभी मौजूदा डेटा को मिटाकर लिख देगा.

पथ पैरामीटर

पैरामीटर प्रकार आवश्यक वर्णन
snapshot_id integer हाँ अद्वितीय स्नैपशॉट आईडी

उदाहरण अनुरोध

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/snapshots/801/restore/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/restore/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers)
print(response.json())
const snapshotId = 801;
const response = await fetch(`https://admin.vps.org/api/v1/snapshots/${snapshotId}/restore/`, {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const result = await response.json();
console.log(result);

उदाहरण प्रतिक्रिया

{
  "status": "success",
  "message": "Server is being restored from snapshot. This may take 5-15 minutes.",
  "snapshot": {
    "id": 801,
    "name": "pre-migration-snapshot",
    "created_at": "2025-01-15T18:30:00Z"
  },
  "server": {
    "id": 12345,
    "name": "web-server-01",
    "status": "restoring"
  }
}

प्रतिक्रिया स्थिति कोड

200 पुनर्स्थापना सफलतापूर्वक शुरू हो गई
400 Bad Request - Server is not in a valid state for restoration
401 अनधिकृत - अमान्य या अनुपलब्ध प्रमाणीकरण टोकन
404 नहीं मिला - स्नैपशॉट मौजूद नहीं है
चेतावनी: Restoring from a snapshot will overwrite all current data on the server. This action cannot be undone. The server will be automatically stopped before restoration begins.
मिटाना /api/v1/snapshots/{snapshot_id}/

स्नैपशॉट हटाएं

स्नैपशॉट को स्थायी रूप से हटा दें। इस कार्रवाई को पूर्ववत नहीं किया जा सकता है।

पथ पैरामीटर

पैरामीटर प्रकार आवश्यक वर्णन
snapshot_id integer हाँ अद्वितीय स्नैपशॉट आईडी

उदाहरण अनुरोध

cURL
Python
curl -X DELETE "https://admin.vps.org/api/v1/snapshots/801/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.delete(url, headers=headers)
print(response.status_code)

प्रतिक्रिया स्थिति कोड

204 स्नैपशॉट सफलतापूर्वक हटा दिया गया
401 अनधिकृत - अमान्य या अनुपलब्ध प्रमाणीकरण टोकन
404 नहीं मिला - स्नैपशॉट मौजूद नहीं है

Snapshots vs Backups

स्नेपशॉट का उपयोग करते समय समझ:

स्नैपशॉट एपीआई

  • उद्देश्य: Quick point-in-time recovery
  • रफ़्तार: Faster to create and restore (3-15 min)
  • उदाहरण: Before risky operations (updates, config changes)
  • भंडारण: Stored on same infrastructure
  • सीमा: 5 snapshots per server
  • इसके लिए सर्वोत्तम: Short-term rollback capability

बैकअप एपीआई

  • उद्देश्य: Long-term data protection
  • रफ़्तार: Slower to create and restore (varies)
  • उदाहरण: Regular automated data protection
  • भंडारण: Separate backup storage
  • सीमा: 10 manual + automatic backups
  • इसके लिए सर्वोत्तम: Disaster recovery and compliance

बढ़िया अभ्यास