VPS.org API

REST API баримтжуулалт

Агшин зургийн API

Серверийн агшин зургуудыг хурдан сэргээхийн тулд удирдаарай. Агшин зургууд нь таны серверийн бүрэн төлөвийг харуулдаг.

Төгсгөлийн цэгүүд 4 endpoints
Суурийн зам /api/v1/snapshots
АВАХ /api/v1/snapshots/

Бүх агшин зургуудыг жагсаах

Серверүүд дээрх бүх агшин зургуудын жагсаалтыг аваарай.

Асуулгын параметрүүд

Параметр Төрөл Шаардлагатай Тайлбар
server_id integer Үгүй Серверийн ID-аар агшин зургуудыг шүүх

Жишээ хүсэлт

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 Тийм Агшин зураг авах серверийн ID
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-оос сэргээх

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

Замын параметрүүд

Параметр Төрөл Шаардлагатай Тайлбар
snapshot_id integer Тийм Өвөрмөц агшин зургийн ID

Жишээ хүсэлт

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 Тийм Өвөрмөц агшин зургийн ID

Жишээ хүсэлт

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