VPS.org API

REST API ලේඛනගත කිරීම

ස්නැප්ෂොට් 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/

සැණරුවක් සාදන්න

Create a snapshot of a server's current state. Snapshots are point-in-time copies of the entire server.

ඉල්ලීම් ශරීර පරාමිතීන්

පරාමිතිය වර්ගය අවශ්‍යයි විස්තර
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/

ස්නැප්ෂොට් එකෙන් ප්‍රතිසාධනය කරන්න

Restore a server to the state captured in a snapshot. This will overwrite all current data on the server.

මාර්ග පරාමිතීන්

පරාමිතිය වර්ගය අවශ්‍යයි විස්තර
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

Understanding when to use snapshots versus backups:

ස්නැප්ෂොට් API

  • අරමුණ: 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

උපස්ථ API

  • අරමුණ: 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

Best Practices