VPS.org API

REST API dokumentacija

Momentinių kopijų API

Tvarkykite serverio momentines kopijas, kad galėtumėte greitai atkurti duomenis tam tikru momentu. Momentinės kopijos užfiksuoja visą jūsų serverio būseną.

Galutiniai taškai 4 endpoints
Bazinis kelias /api/v1/snapshots
GAUTI /api/v1/snapshots/

Išvardinti visas momentines nuotraukas

Gaukite visų jūsų serverių momentinių kopijų sąrašą.

Užklausos parametrai

Parametras Tipas Privaloma Aprašymas
server_id integer Nr. Filtruoti momentines kopijas pagal serverio ID

Prašymo pavyzdys

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

Atsakymo pavyzdys

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

Atsakymo būsenos kodai

200 Sėkmingai gautas momentinių kopijų sąrašas
401 Neautorizuota – neteisingas arba trūksta autentifikavimo prieigos rakto
Potvarkis /api/v1/snapshots/

Sukurti momentinę kopiją

Sukurti serverio esamos būsenos momentą. Snapshots yra viso serverio taškinio vaizdo kopijos.

Užklausos turinio parametrai

Parametras Tipas Privaloma Aprašymas
server_id integer Taip Serverio, kurio norite momentinę kopiją, ID
name string Taip Momentinės kopijos pavadinimas (raidinės ir skaitmeninės eilutės, brūkšneliai, pabraukimai)
description string Nr. Pasirinktinai momentinės kopijos aprašymas

Prašymo pavyzdys

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

Atsakymo pavyzdys

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

Atsakymo būsenos kodai

201 Momentinės kopijos kūrimas sėkmingai pradėtas
400 Bad Request - Invalid parameters or snapshot limit reached
401 Neautorizuota – neteisingas arba trūksta autentifikavimo prieigos rakto
404 Not Found - Server does not exist
Pastaba. 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.
Potvarkis /api/v1/snapshots/{snapshot_id}/restore/

Atkurti iš momentinės kopijos

Atstatyti serverį į vaizdajuostę sugautą būseną. Tai perrašys visus esamus serveryje esančius duomenis.

Kelio parametrai

Parametras Tipas Privaloma Aprašymas
snapshot_id integer Taip Unikalus momentinės kopijos ID

Prašymo pavyzdys

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

Atsakymo pavyzdys

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

Atsakymo būsenos kodai

200 Atkūrimas sėkmingai pradėtas
400 Bad Request - Server is not in a valid state for restoration
401 Neautorizuota – neteisingas arba trūksta autentifikavimo prieigos rakto
404 Nerasta – momentinės kopijos nėra
Įspėjimas: 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.
IŠTRINTI /api/v1/snapshots/{snapshot_id}/

Ištrinti momentinę kopiją

Visam laikui ištrinti momentinę kopiją. Šio veiksmo negalima atšaukti.

Kelio parametrai

Parametras Tipas Privaloma Aprašymas
snapshot_id integer Taip Unikalus momentinės kopijos ID

Prašymo pavyzdys

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)

Atsakymo būsenos kodai

204 Momentinė nuotrauka sėkmingai ištrinta
401 Neautorizuota – neteisingas arba trūksta autentifikavimo prieigos rakto
404 Nerasta – momentinės kopijos nėra

Snapshots vs Backups

Supratimas, kada naudoti vaizdajuostes prieš atsargines kopijas:

Momentinių kopijų API

  • Paskirtis: Quick point-in-time recovery
  • Greitis: Faster to create and restore (3-15 min)
  • Naudojimo atvejis: Before risky operations (updates, config changes)
  • Sandėliavimas: Stored on same infrastructure
  • Riba: 5 snapshots per server
  • Geriausiai tinka: Short-term rollback capability

Atsarginių kopijų API

  • Paskirtis: Long-term data protection
  • Greitis: Slower to create and restore (varies)
  • Naudojimo atvejis: Regular automated data protection
  • Sandėliavimas: Separate backup storage
  • Riba: 10 manual + automatic backups
  • Geriausiai tinka: Disaster recovery and compliance

Geriausia patirtis