VPS.org API

@ action

Hotunan API na Hotuna

Sarrafa hotunan sabar don saurin gyarawa a cikin lokaci. Hotunan hoto suna kama cikakken yanayin sabar ku.

Ƙarshen maki 4 endpoints
Hanyar Tushe /api/v1/snapshots
SAMU /api/v1/snapshots/

Jera Duk Hotunan Hotuna

Nemo jerin duk hotunan da aka ɗauka a cikin sabar ku.

Sigogin Tambaya

Parameters Nau'i Ana buƙata @ action
server_id integer QDialogButtonBox Tace hotuna ta hanyar ID na sabar

Buƙatar Misali

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

Misalin Amsar

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

Lambobin Matsayin Amsawa

200 An sami nasarar dawo da jerin hotuna
401 Ba a ba da izini ba - Alamar tabbatarwa mara inganci ko ba ta ɓace ba
QSql /api/v1/snapshots/

Ƙirƙiri Hoto

Yi wani hoton halin da ke ciki na mai ba da sabis na yanzu. Hoton na cikin lokaci na kwafin mai ba da sabis gaba ɗaya.

Sigogin Jiki na Neman

Parameters Nau'i Ana buƙata @ action
server_id integer Ee ID na uwar garken don ɗaukar hoto
name string Ee Suna don hoton (lakabi, jan layi, ƙasan layi)
description string QDialogButtonBox Bayanin zaɓi don hoton

Buƙatar Misali

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

Misalin Amsar

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

Lambobin Matsayin Amsawa

201 An fara ƙirƙirar hoto cikin nasara
400 Bad Request - Invalid parameters or snapshot limit reached
401 Ba a ba da izini ba - Alamar tabbatarwa mara inganci ko ba ta ɓace ba
404 Not Found - Server does not exist
@ action 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.
QSql /api/v1/snapshots/{snapshot_id}/restore/

Dawo da shi daga Snapshot

Mai da mai ba da sabis zuwa halin da aka kama a cikin hoto na lokaci. Wannan zai sake rubuta duk bayanan da ke cikin mai ba da sabis.

Sigogi na Hanya

Parameters Nau'i Ana buƙata @ action
snapshot_id integer Ee ID na musamman na hoto

Buƙatar Misali

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

Misalin Amsar

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

Lambobin Matsayin Amsawa

200 An fara dawo da kayan cikin nasara
400 Bad Request - Server is not in a valid state for restoration
401 Ba a ba da izini ba - Alamar tabbatarwa mara inganci ko ba ta ɓace ba
404 Ba a Samu ba - Hotunan hoto ba su wanzu ba
Gargaɗi: 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.
Goge /api/v1/snapshots/{snapshot_id}/

Share Hoton Hotuna

Share hoton hoto na dindindin. Ba za a iya soke wannan aikin ba.

Sigogi na Hanya

Parameters Nau'i Ana buƙata @ action
snapshot_id integer Ee ID na musamman na hoto

Buƙatar Misali

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)

Lambobin Matsayin Amsawa

204 An goge hoto cikin nasara
401 Ba a ba da izini ba - Alamar tabbatarwa mara inganci ko ba ta ɓace ba
404 Ba a Samu ba - Hotunan hoto ba su wanzu ba

Snapshots vs Backups

Fahimtar lokacin da za'a yi amfani da hotunan hoto da na riga-kafi:

Hotunan API na Hotuna

  • Manufa: Quick point-in-time recovery
  • Sauri: Faster to create and restore (3-15 min)
  • Amfani da Shari'a: Before risky operations (updates, config changes)
  • Ajiya: Stored on same infrastructure
  • QDialogButtonBox 5 snapshots per server
  • Mafi Kyau Ga: Short-term rollback capability

API na Ajiyayyen Bayanai

  • Manufa: Long-term data protection
  • Sauri: Slower to create and restore (varies)
  • Amfani da Shari'a: Regular automated data protection
  • Ajiya: Separate backup storage
  • QDialogButtonBox 10 manual + automatic backups
  • Mafi Kyau Ga: Disaster recovery and compliance

QDialogButtonBox