ارسال سیگنال به سرور مجازی با API
برای ارسال سیگنال به سرور مجازی، باید به آدرس https://iaas-api.liara.ir/vm/power/vmID، یک درخواست PATCH، ارسال کنید. مقدار vmID، باید با آیدی سرور مجازی مورد نظرتان جایگزین شود. در ادامه، نحوه ارسال سیگنال به سرور مجازی با API با استفاده از ابزار cURL و برخی از زبانهای برنامهنویسی، قرار گرفته است:
curl -X PATCH https://iaas-api.liara.ir/vm/power/:vmID \
-H "Authorization: Bearer YOUR-API-TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "ACTION"}'
const axios = require('axios');
const vmID = "vmID";
const token = "YOUR-API-TOKEN";
const url = `https://iaas-api.liara.ir/vm/power/${vmID}`;
const data = {
action: "ACTION"
};
axios.patch(url, data, {
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error("Error:", error.response.data);
});
import requests
vmID = "vmID"
token = "YOUR-API-TOKEN"
url = f"https://iaas-api.liara.ir/vm/power/{vmID}"
data = {
"action": "ACTION"
}
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
response = requests.patch(url, json=data, headers=headers)
if response.status_code == 200:
print("VM changed successfully")
else:
print(response.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
vmID := "vmID"
token := "YOUR-API-TOKEN"
url := fmt.Sprintf("https://iaas-api.liara.ir/vm/power/%s", vmID)
data := map[string]string{"action": "ACTION"}
jsonData, _ := json.Marshal(data)
req, _ := http.NewRequest("PATCH", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
if result != nil {
fmt.Println(result)
} else {
fmt.Println("VM changed successfully")
}
}
<?php
$vmID = "vmID";
$token = "YOUR-API-TOKEN";
$url = "https://iaas-api.liara.ir/vm/power/{$vmID}";
$data = json_encode(["action" => "ACTION"]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer {$token}",
"Content-Type: application/json",
"Content-Length: " . strlen($data)
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
?>
using System.Text;
class Program
{
static async Task Main(string[] args)
{
var url = "https://iaas-api.liara.ir/vm/power/vmID";
var token = "YOUR-API-TOKEN";
var jsonPayload = "{"action": "ACTION"}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");
var request = new HttpRequestMessage(new HttpMethod("PATCH"), url)
{
Content = content
};
var response = await client.SendAsync(request);
if (response.IsSuccessStatusCode)
{
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine("Response:");
Console.WriteLine(responseBody);
}
else
{
Console.WriteLine($"Error: {response.StatusCode}");
var errorResponse = await response.Content.ReadAsStringAsync();
Console.WriteLine(errorResponse);
}
}
}
}
در دستورات و قطعه کدهای فوق، بهجای YOUR-API-TOKEN، توکن API حساب خود و بهجای vmID، آیدی سرور مجازی مورد نظرتان را وارد کنید.
در قطعه کد فوق، باید ACTION را با سیگنالی که قصد دارید بفرستید، جایگزین کنید. سیگنالها میتوانند start برای روشن کردن سرور، stop برای خاموش کردن سرور، reboot برای ریاستارت کردن سرور و shutdown برای قطع برق سرور مجازی باشند.