VPS.org API

Whakatuhi 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

Parameter Momo E hiahiatia ana Whakamāramatanga
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
POST /api/v1/snapshots/

Waihangahia he Whakaahua Poto

Ka waihanga i tētahi whakaahua o te tūnga o te pūnaha pūnaha o nāianei. Ko ngā whakaahua he tārua wā-wā o te pūnaha pūnaha katoa.

Tonohia ngā Tawhā Tinana

Parameter Momo E hiahiatia ana Whakamāramatanga
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
Whakapapa: 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/

Whakaora mai i te Whakaahua Poto

Ka whakaorangia tētahi pūnaha ki te āhua i tangohia i roto i tētahi whakaahua. Ka tārua tēnei i ngā raraunga o nāianei i runga i te pūnaha.

Ngā Tawhā Ara

Parameter Momo E hiahiatia ana Whakamāramatanga
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

Parameter Momo E hiahiatia ana Whakamāramatanga
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

E mōhio ana ina whakamahia ngā whakaahuatanga ki ngā pūrere:

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
  • Te 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
  • Te tepe: 10 manual + automatic backups
  • Pai rawa atu mō: Disaster recovery and compliance

Ko nga mahi pai rawa