VPS.org API

وثائق واجهة برمجة تطبيقات REST

واجهة برمجة تطبيقات النسخ الاحتياطي

إدارة النسخ الاحتياطية للخوادم برمجياً. عرض وإنشاء واستعادة وحذف النسخ الاحتياطية لخوادمك.

نقاط النهاية 3 endpoints
المسار الأساسي /api/v1/backups
يحصل /api/v1/backups/

عرض جميع النسخ الاحتياطية

استرجع قائمة بجميع النسخ الاحتياطية الموجودة على خوادمك.

معلمات الاستعلام

المعلمة يكتب مطلوب وصف
server_id integer لا تصفية النسخ الاحتياطية حسب معرّف الخادم
backup_type string لا تصفية حسب النوع: manual ، automatic

مثال على الطلب

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

url = "https://admin.vps.org/api/v1/backups/"
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/backups/?server_id=12345', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

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

مثال على الاستجابة

{
  "count": 3,
  "results": [
    {
      "id": 501,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "backup_type": "automatic",
      "status": "completed",
      "size_mb": 4523,
      "created_at": "2025-01-16T03:00:00Z",
      "expires_at": "2025-02-16T03:00:00Z",
      "description": "Automatic daily backup"
    },
    {
      "id": 499,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "backup_type": "manual",
      "status": "completed",
      "size_mb": 4456,
      "created_at": "2025-01-14T10:30:00Z",
      "expires_at": null,
      "description": "Pre-update backup"
    },
    {
      "id": 495,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "backup_type": "automatic",
      "status": "completed",
      "size_mb": 4389,
      "created_at": "2025-01-15T03:00:00Z",
      "expires_at": "2025-02-15T03:00:00Z",
      "description": "Automatic daily backup"
    }
  ]
}

رموز حالة الاستجابة

200 تم استرداد قائمة النسخ الاحتياطية بنجاح
401 غير مصرح به - رمز مصادقة غير صالح أو مفقود
بريد /api/v1/backups/

إنشاء نسخة احتياطية يدوية

أنشئ نسخة احتياطية يدوية للخادم. لا تنتهي صلاحية النسخ الاحتياطية اليدوية تلقائيًا.

معلمات نص الطلب

المعلمة يكتب مطلوب وصف
server_id integer نعم معرّف الخادم المراد نسخه احتياطيًا
description string لا وصف اختياري للنسخة الاحتياطية

مثال على الطلب

cURL
Python
JavaScript
PHP
curl -X POST "https://admin.vps.org/api/v1/backups/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "server_id": 12345,
    "description": "Pre-deployment backup"
  }'
import requests

url = "https://admin.vps.org/api/v1/backups/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "server_id": 12345,
    "description": "Pre-deployment backup"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/backups/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    server_id: 12345,
    description: 'Pre-deployment backup'
  })
});

const backup = await response.json();
console.log(backup);
$data = [
    'server_id' => 12345,
    'description' => 'Pre-deployment backup'
];

$ch = curl_init('https://admin.vps.org/api/v1/backups/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$backup = json_decode($response, true);
curl_close($ch);

مثال على الاستجابة

{
  "id": 502,
  "server": {
    "id": 12345,
    "name": "web-server-01"
  },
  "backup_type": "manual",
  "status": "in_progress",
  "size_mb": null,
  "created_at": "2025-01-16T15:45:00Z",
  "expires_at": null,
  "description": "Pre-deployment backup",
  "message": "Backup is being created. This may take several minutes depending on server size."
}

رموز حالة الاستجابة

201 تم بدء إنشاء النسخة الاحتياطية بنجاح
400 طلب غير صالح - معلمات غير صالحة أو طلب غير صحيح
401 غير مصرح به - رمز مصادقة غير صالح أو مفقود
404 غير موجود - الخادم غير موجود
ملحوظة: يمكنك إجراء ما يصل إلى 10 نسخ احتياطية يدوية لكل خادم. يتم الاحتفاظ بالنسخ الاحتياطية التلقائية بناءً على سياسة الاحتفاظ بالنسخ الاحتياطية الخاصة بخطتك (عادةً من 7 إلى 30 يومًا).
يمسح /api/v1/backups/{backup_id}/

حذف النسخة الاحتياطية

حذف النسخة الاحتياطية نهائياً. لا يمكن التراجع عن هذا الإجراء.

معلمات المسار

المعلمة يكتب مطلوب وصف
backup_id integer نعم معرّف النسخ الاحتياطي الفريد

مثال على الطلب

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

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

response = requests.delete(url, headers=headers)
print(response.status_code)
const backupId = 501;
const response = await fetch(`https://admin.vps.org/api/v1/backups/${backupId}/`, {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

console.log(response.status);

رموز حالة الاستجابة

204 تم حذف النسخة الاحتياطية بنجاح
401 غير مصرح به - رمز مصادقة غير صالح أو مفقود
404 غير موجود - النسخة الاحتياطية غير موجودة
تحذير: حذف النسخة الاحتياطية عملية نهائية ولا يمكن التراجع عنها. تأكد من أنك لم تعد بحاجة إلى هذه النسخة الاحتياطية قبل حذفها.

استعادة البيانات من النسخ الاحتياطية

لاستعادة خادم من نسخة احتياطية، استخدم نقطة نهاية استعادة واجهة برمجة تطبيقات الخوادم :

POST /api/v1/servers/{server_id}/restore/
{
  "backup_id": 501
}

للحصول على معلومات مفصلة حول استعادة الخادم، راجع وثائق واجهة برمجة تطبيقات الخوادم.

أفضل ممارسات النسخ الاحتياطي