VPS.org API

> REST API dokumentasyon

Mga Snapshot API

Pamahalaan ang mga snapshot ng server para sa mabilis na point-in-time na pagpapanumbalik. Kinukuha ng mga snapshot ang kumpletong estado ng iyong server.

Mga Endpoint 4 endpoints
Landas ng Batayan /api/v1/snapshots
KUMUHA /api/v1/snapshots/

Ilista ang Lahat ng Snapshot

Kumuha ng listahan ng lahat ng snapshot sa iyong mga server.

Mga Parameter ng Query

Parameter Uri Kinakailangan Paglalarawan
server_id integer Hindi I-filter ang mga snapshot ayon sa server ID

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

200 Matagumpay na nakuha ang listahan ng snapshot
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
Post /api/v1/snapshots/

Gumawa ng Snapshot

> Lumikha ng isang snapshot ng kasalukuyang estado ng isang server. Snapshots ay point-in-time na kopya ng buong server.

Humiling ng mga Parameter ng Katawan

Parameter Uri Kinakailangan Paglalarawan
server_id integer Oo ID ng server para sa snapshot
name string Oo Pangalan para sa snapshot (alphanumeric, hyphens, underscore)
description string Hindi Opsyonal na paglalarawan para sa snapshot

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

201 Matagumpay na nasimulan ang paggawa ng snapshot
400 Bad Request - Invalid parameters or snapshot limit reached
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
404 Not Found - Server does not exist
Tandaan: 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/

Ibalik mula sa Snapshot

> Ibalik ang isang server sa estado nahuli sa isang snapshot. Ito ay magdagdag ng lahat ng kasalukuyang data sa server.

Mga Parameter ng Landas

Parameter Uri Kinakailangan Paglalarawan
snapshot_id integer Oo Natatanging ID ng snapshot

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

200 Matagumpay na nasimulan ang pagpapanumbalik
400 Bad Request - Server is not in a valid state for restoration
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
404 Hindi Natagpuan - Walang Snapshot
Babala: 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.
TANGGALIN /api/v1/snapshots/{snapshot_id}/

Burahin ang Snapshot

Permanenteng burahin ang isang snapshot. Hindi na maaaring bawiin ang aksyon na ito.

Mga Parameter ng Landas

Parameter Uri Kinakailangan Paglalarawan
snapshot_id integer Oo Natatanging ID ng snapshot

Halimbawang Kahilingan

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)

Mga Kodigo ng Katayuan ng Tugon

204 Matagumpay na nabura ang snapshot
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
404 Hindi Natagpuan - Walang Snapshot

Snapshots vs Backups

> Pag-unawa kapag upang gamitin ang snapshots kumpara sa backup:

Mga Snapshot API

  • Layunin: Quick point-in-time recovery
  • Bilis: Faster to create and restore (3-15 min)
  • Kaso ng Paggamit: Before risky operations (updates, config changes)
  • Imbakan: Stored on same infrastructure
  • Limita: 5 snapshots per server
  • Pinakamahusay Para sa: Short-term rollback capability

Mga Backup API

  • Layunin: Long-term data protection
  • Bilis: Slower to create and restore (varies)
  • Kaso ng Paggamit: Regular automated data protection
  • Imbakan: Separate backup storage
  • Limita: 10 manual + automatic backups
  • Pinakamahusay Para sa: Disaster recovery and compliance

> Pinakamahusay na mga kasanayan