VPS.org API

REST API Dokümantasyonu

Anlık Görüntüler API'si

Anlık durum geri yüklemesi için sunucu anlık görüntülerini yönetin. Anlık görüntüler, sunucunuzun tüm durumunu yakalar.

Uç noktalar 4 endpoints
Temel Yol /api/v1/snapshots
ELDE ETMEK /api/v1/snapshots/

Tüm Anlık Görüntüleri Listele

Sunucularınızdaki tüm anlık görüntülerin listesini alın.

Sorgu Parametreleri

Parametre Tip Gerekli Tanım
server_id integer HAYIR Sunucu kimliğine göre anlık görüntüleri filtrele

Örnek Talep

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);

Örnek Yanıt

{
  "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"
    }
  ]
}

Yanıt Durum Kodları

200 Anlık görüntü listesi başarıyla alındı.
401 Yetkisiz - Geçersiz veya eksik kimlik doğrulama belirteci
POSTALAMAK /api/v1/snapshots/

Anlık Görüntü Oluştur

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

İstek Gövdesi Parametreleri

Parametre Tip Gerekli Tanım
server_id integer Evet Anlık görüntüsünün alınacağı sunucunun kimliği
name string Evet Ekran görüntüsünün adı (alfanümerik, tireli, alt çizgili)
description string HAYIR Anlık görüntü için isteğe bağlı açıklama

Örnek Talep

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);

Örnek Yanıt

{
  "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."
}

Yanıt Durum Kodları

201 Anlık görüntü oluşturma işlemi başarıyla başlatıldı.
400 Bad Request - Invalid parameters or snapshot limit reached
401 Yetkisiz - Geçersiz veya eksik kimlik doğrulama belirteci
404 Not Found - Server does not exist
Not: 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.
POSTALAMAK /api/v1/snapshots/{snapshot_id}/restore/

Anlık Görüntüden Geri Yükle

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

Yol Parametreleri

Parametre Tip Gerekli Tanım
snapshot_id integer Evet Benzersiz anlık görüntü kimliği

Örnek Talep

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);

Örnek Yanıt

{
  "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"
  }
}

Yanıt Durum Kodları

200 Geri yükleme işlemi başarıyla başlatıldı.
400 Bad Request - Server is not in a valid state for restoration
401 Yetkisiz - Geçersiz veya eksik kimlik doğrulama belirteci
404 Bulunamadı - Anlık görüntü mevcut değil.
Uyarı: 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.
SİLMEK /api/v1/snapshots/{snapshot_id}/

Anlık Görüntüyü Sil

Anlık görüntüyü kalıcı olarak silin. Bu işlem geri alınamaz.

Yol Parametreleri

Parametre Tip Gerekli Tanım
snapshot_id integer Evet Benzersiz anlık görüntü kimliği

Örnek Talep

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)

Yanıt Durum Kodları

204 Anlık görüntü başarıyla silindi.
401 Yetkisiz - Geçersiz veya eksik kimlik doğrulama belirteci
404 Bulunamadı - Anlık görüntü mevcut değil.

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Anlık Görüntüler API'si

  • Amaç: Quick point-in-time recovery
  • Hız: Faster to create and restore (3-15 min)
  • Kullanım Örneği: Before risky operations (updates, config changes)
  • Depolamak: Stored on same infrastructure
  • Sınır: 5 snapshots per server
  • En İyi Kullanım Alanı: Short-term rollback capability

Yedeklemeler API'si

  • Amaç: Long-term data protection
  • Hız: Slower to create and restore (varies)
  • Kullanım Örneği: Regular automated data protection
  • Depolamak: Separate backup storage
  • Sınır: 10 manual + automatic backups
  • En İyi Kullanım Alanı: Disaster recovery and compliance

Best Practices