VPS.org API

Ngā tuhinga mō te REST API

API Whakaahua Poto

Whakahaerehia ngā whakaahua tūmau mō te whakaora tere i te wā tika. Ka hopukina e ngā whakaahua te āhua katoa o tō tūmau.

Ngā Pūtake 4 endpoints
Ara Tūāpapa /api/v1/snapshots
TIKINA /api/v1/snapshots/

Whakarārangihia ngā Whakaahua Katoa

Tikina he rārangi o ngā whakaahua katoa puta noa i ō tūmau.

Ngā Tawhā Uiui

Tawhā Momo E hiahiatia ana Whakaahuatanga
server_id integer Kāore Tātarihia ngā whakaahua poto mā te ID tūmau

Tauira Tono

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

Tauira Whakautu

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

Ngā Waehere Tūnga Urupare

200 I angitu te tiki i te rārangi whakaahua
401 Kāore i Whakamanahia - Tohu manatoko kore mana, ngaro rānei
TŪHI /api/v1/snapshots/

Waihangahia he Whakaahua Poto

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

Tonohia ngā Tawhā Tinana

Tawhā Momo E hiahiatia ana Whakaahuatanga
server_id integer Āe ID o te tūmau ki te whakaahua poto
name string Āe Ingoa mō te whakaahua poto (tauira, tohuhono, tohu raro)
description string Kāore Whakaahuatanga kōwhiringa mō te whakaahua poto

Tauira Tono

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

Tauira Whakautu

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

Ngā Waehere Tūnga Urupare

201 I tīmata angitu te waihanga whakaahua poto
400 Bad Request - Invalid parameters or snapshot limit reached
401 Kāore i Whakamanahia - Tohu manatoko kore mana, ngaro rānei
404 Not Found - Server does not exist
Tuhipoka: 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.
TŪHI /api/v1/snapshots/{snapshot_id}/restore/

Whakaora mai i te Whakaahua Poto

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

Ngā Tawhā Ara

Tawhā Momo E hiahiatia ana Whakaahuatanga
snapshot_id integer Āe ID whakaahua ahurei

Tauira Tono

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

Tauira Whakautu

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

Ngā Waehere Tūnga Urupare

200 I tīmata angitu te whakaora i te tīmatanga o te whakaoranga
400 Bad Request - Server is not in a valid state for restoration
401 Kāore i Whakamanahia - Tohu manatoko kore mana, ngaro rānei
404 Kāore i Kitea - Kāore he Whakaahua Poto i te tīariari
Whakatūpato: 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.
MUKU /api/v1/snapshots/{snapshot_id}/

Mukua te Whakaahua Poto

Mukua tonutia tētahi whakaahua. Kāore e taea te whakakore i tēnei mahi.

Ngā Tawhā Ara

Tawhā Momo E hiahiatia ana Whakaahuatanga
snapshot_id integer Āe ID whakaahua ahurei

Tauira Tono

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)

Ngā Waehere Tūnga Urupare

204 Kua mukua angitu te whakaahua poto
401 Kāore i Whakamanahia - Tohu manatoko kore mana, ngaro rānei
404 Kāore i Kitea - Kāore he Whakaahua Poto i te tīariari

Snapshots vs Backups

Understanding when to use snapshots versus backups:

API Whakaahua Poto

  • Kaupapa: Quick point-in-time recovery
  • Tere: Faster to create and restore (3-15 min)
  • Whakamahinga Take: Before risky operations (updates, config changes)
  • Rokiroki: Stored on same infrastructure
  • Tepe: 5 snapshots per server
  • Pai rawa atu mō: Short-term rollback capability

API Tārua

  • Kaupapa: Long-term data protection
  • Tere: Slower to create and restore (varies)
  • Whakamahinga Take: Regular automated data protection
  • Rokiroki: Separate backup storage
  • Tepe: 10 manual + automatic backups
  • Pai rawa atu mō: Disaster recovery and compliance

Best Practices