VPS.org API

Akwụkwọ API REST

Foto API

Jikwaa foto sava maka nrụzi ngwa ngwa n'oge. Foto ndị ahụ na-ejide ọnọdụ zuru oke nke sava gị.

Isi njedebe 4 endpoints
Ụzọ Ntọala /api/v1/snapshots
Nweta /api/v1/snapshots/

Depụta foto niile

Weghachite ndepụta nke foto niile dị na sava gị.

Paịmatị Ajụjụ

Paramita Ụdị A chọrọ Nkọwa
server_id integer Mba Nyochaa foto site na njirimara sava

Arịrịọ Ihe Nlereanya

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

Ihe Nlereanya Azịza

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

Koodu Ọnọdụ Nzaghachi

200 Enwetara ndepụta foto nke ọma
401 Enweghị ikike - Akara njirimara na-ezighi ezi ma ọ bụ na-efu
POST /api/v1/snapshots/

Mepụta foto onyonyo

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

Rịọ maka paramita ahụ

Paramita Ụdị A chọrọ Nkọwa
server_id integer Ee ID nke sava ahụ iji sere foto
name string Ee Aha maka foto ahụ (mkpụrụedemede mkpụrụedemede, akara mkpịsị, akara ndị dị n'okpuru)
description string Mba Nkọwa nhọrọ maka foto ahụ

Arịrịọ Ihe Nlereanya

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

Ihe Nlereanya Azịza

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

Koodu Ọnọdụ Nzaghachi

201 Mmepụta foto ọhụrụ bidoro nke ọma
400 Bad Request - Invalid parameters or snapshot limit reached
401 Enweghị ikike - Akara njirimara na-ezighi ezi ma ọ bụ na-efu
404 Not Found - Server does not exist
Rịba ama: 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.
POST /api/v1/snapshots/{snapshot_id}/restore/

Weghachite site na Snapshot

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

Usoro Ụzọ

Paramita Ụdị A chọrọ Nkọwa
snapshot_id integer Ee NJ foto pụrụ iche

Arịrịọ Ihe Nlereanya

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

Ihe Nlereanya Azịza

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

Koodu Ọnọdụ Nzaghachi

200 Mweghachi amalitela nke ọma
400 Bad Request - Server is not in a valid state for restoration
401 Enweghị ikike - Akara njirimara na-ezighi ezi ma ọ bụ na-efu
404 Achọtaghị - Foto adịghị adị
Ịdọ aka ná ntị: 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.
HICHAPỤ /api/v1/snapshots/{snapshot_id}/

Hichapụ foto

Hichapụ foto ntanye kpamkpam. Agaghị ewepụ ihe a.

Usoro Ụzọ

Paramita Ụdị A chọrọ Nkọwa
snapshot_id integer Ee NJ foto pụrụ iche

Arịrịọ Ihe Nlereanya

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)

Koodu Ọnọdụ Nzaghachi

204 Ehichapụrụ foto ahụ nke ọma
401 Enweghị ikike - Akara njirimara na-ezighi ezi ma ọ bụ na-efu
404 Achọtaghị - Foto adịghị adị

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Foto API

  • Ebumnuche: Quick point-in-time recovery
  • Ọsọ: Faster to create and restore (3-15 min)
  • Ojiji Ojiji: Before risky operations (updates, config changes)
  • Nchekwa: Stored on same infrastructure
  • Oke: 5 snapshots per server
  • Kachasị Mma Maka: Short-term rollback capability

API ndabere

  • Ebumnuche: Long-term data protection
  • Ọsọ: Slower to create and restore (varies)
  • Ojiji Ojiji: Regular automated data protection
  • Nchekwa: Separate backup storage
  • Oke: 10 manual + automatic backups
  • Kachasị Mma Maka: Disaster recovery and compliance

Best Practices