VPS.org API

የREST 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:

ቅጽበተ-ፎቶዎች ኤፒአይ

  • ዓላማ፡ 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

Best Practices