Referensi REST API
REST API Cockpit memungkinkan administrator dan sistem eksternal untuk mengotomatiskan pendaftaran host, mengelola siklus hidup mesin virtual, dan mengambil telemetri sistem melalui HTTP.
Autentikasi & Manajemen Sesi
REST API menggunakan autentikasi JSON Web Token (JWT) untuk memvalidasi setiap permintaan.
Semua permintaan API harus menyertakan token JWT dalam header otorisasi HTTP:
http
Authorization: Bearer <YOUR_JWT_TOKEN>
Content-Type: application/json1. Autentikasi (Mengambil Token Sesi)
- Endpoint:
POST /api/v1/auth/login - Payload Permintaan:json
{ "username": "admin", "password": "yourpassword" } - Payload Respons:json
{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "a1b2c3d4-...", "expires_in": 3600 }
2. Memperbarui Token Sesi yang Kedaluwarsa
- Endpoint:
POST /api/v1/auth/refresh - Payload Permintaan:json
{ "refresh_token": "a1b2c3d4-..." }
Administrasi Node Host
Mencantumkan Host yang Terdaftar
- Endpoint:
GET /api/v1/hosts - Payload Respons:json
{ "hosts": [ { "id": "019e0014-abcd-7057-b326-000000000001", "hostname": "vapor-node-01.corp.awan.io", "status": "connected", "sync_cursor": 1716999901 } ] }
Operasi Mesin Virtual
Mencantumkan Semua Mesin Virtual
- Endpoint:
GET /api/v1/vms
Memicu Tindakan Daya VM (VM Power Action)
- Endpoint:
POST /api/v1/vms/:id/action - Contoh Payload Permintaan:
- Menjalankan VM:
{"action": "start"} - Shutdown Secara Halus:
{"action": "shutdown"} - Mematikan Paksa:
{"action": "stop", "force": true}
- Menjalankan VM:
Mengeksekusi Migrasi Mesin Virtual
- Endpoint:
POST /api/v1/vms/:id/migrate - Payload Permintaan:json
{ "destination_host_id": "019e0014-ffff-7057-b326-000000000002", "live": true, "persistent": true, "undefine_source": true, "copy_storage": "none" } - Payload Respons:json
{ "migration_id": "abc123def456", "status": "initiated" }