VPS.org API

REST API დოკუმენტაცია

ანგარიში

ანგარიშის პროფილისა და API ტოკენის შესახებ ინფორმაციის მიღება. სასარგებლოა იმისთვის, რომ განსაზღვროთ, რომელი ანგარიში და უფლებამოსილებაა დაკავშირებული API ტოკენს.

საბოლოო წერტილები 1 დასასრული
ბაზისური გზა /api/v1/account
მიიღეთ /api/v1/account/me/

ანგარიშის & ტოკენის ინფორმაცია

ანგარიშის პროფილის მეტა მონაცემებს და API ტოკენის სპექტრს/უფლებებს უბრუნებს, რომელიც მოთხოვნაში გამოიყენება. ეს სასარგებლოა, როდესაც თქვენ მართავთ მრავალ API ტოკენს და გჭირდებათ იდენტიფიცირება, რომელი ანგარიშის ტოკენია და რა უფლება აქვს მას.

ავთენტიფიკაცია

საჭიროა მართებული API ტოკენი. ნებისმიერი აქტიური ტოკენი შეუძლია შეაღწიოს ამ დასასრული წერტილს, მისი უფლებამოსილების სპექტრის მიუხედავად.

მაგალითის მოთხოვნა

cURL
Python
JavaScript
PHP
curl -X GET "https://admin.vps.org/api/v1/account/me/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

url = "https://admin.vps.org/api/v1/account/me/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
data = response.json()

print(f"Account: {data['account']['email']}")
print(f"Token: {data['token']['name']}")
print(f"Permissions: {data['token']['permissions']}")
const response = await fetch('https://admin.vps.org/api/v1/account/me/', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(`Account: ${data.account.email}`);
console.log(`Token: ${data.token.name}`);
console.log(`Permissions:`, data.token.permissions);
$ch = curl_init('https://admin.vps.org/api/v1/account/me/');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

echo "Account: " . $data['account']['email'] . "\n";
echo "Token: " . $data['token']['name'] . "\n";
echo "Permissions: " . implode(', ', $data['token']['permissions']) . "\n";

მაგალითის პასუხი

{
  "account": {
    "email": "john@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "company_name": "Acme Inc.",
    "created_at": "2024-06-15"
  },
  "token": {
    "name": "Production Deploy Key",
    "permissions": [
      "servers:list",
      "servers:create",
      "servers:power",
      "dns:*"
    ],
    "created_at": "2025-01-10T14:30:00Z",
    "last_used_at": "2025-02-11T08:45:12Z",
    "expires_at": null,
    "is_expired": null
  }
}

პასუხის ველები

account object
ველი ტიპი აღწერა
email string Account email address
first_name string | null Account holder's first name
last_name string | null Account holder's last name
company_name string | null Company name (if set)
created_at date Account creation date (YYYY-MM-DD)
token object
ველი ტიპი აღწერა
name string Name assigned to this API token
permissions array List of permission strings (e.g. servers:list, dns:*). See Authentication docs for permission format.
created_at datetime When the token was created (ISO 8601)
last_used_at datetime | null Last time the token was used for authentication
expires_at datetime | null Token expiration date (null if no expiration)
is_expired boolean | null ტოკენის ვადა გავიდა თუ არა. null, თუ ტოკენს არ აქვს ვადის გასვლის თარიღი.

პასუხის სტატუსის კოდები

200 Successfully retrieved account and token information
403 API ტოკენი არასწორია, გასული ვადით ან არ არსებობს. API პასუხობს 403, არა 401, თუ ავთენტიფიკაცია ვერ მოხერხდა.

გამოყენების შემთხვევები

ტოკენის მფლობელის იდენტიფიცირება

როდესაც რამდენიმე API ტოკენს სხვადასხვა პროგრამაში მართავთ, გამოიყენეთ ეს დასასრული იმისთვის, რომ შეამოწმოთ რომელ ანგარიშს ეკუთვნის ტოკენი:

# Check which account this token is associated with
response = requests.get(
    "https://admin.vps.org/api/v1/account/me/",
    headers={"Authorization": f"Bearer {api_token}"}
)
account = response.json()["account"]
print(f"This token belongs to: {account['email']}")

ტოკენის უფლებათა შემოწმება

API- ს გამოძახების წინ, შეამოწმეთ მიმდინარე ტოკენის უფლებანი:

# Check token permissions before performing an action
response = requests.get(
    "https://admin.vps.org/api/v1/account/me/",
    headers={"Authorization": f"Bearer {api_token}"}
)
permissions = response.json()["token"]["permissions"]

if "servers:create" in permissions or "servers:*" in permissions:
    # Token has permission to create servers
    create_server()
else:
    print("Token does not have servers:create permission")

ტოკენის ვადის გასვლის მონიტორინგი

შემოწმება, თუ თქვენი ტოკენის ვადა იწურება:

from datetime import datetime

response = requests.get(
    "https://admin.vps.org/api/v1/account/me/",
    headers={"Authorization": f"Bearer {api_token}"}
)
token_info = response.json()["token"]

if token_info["expires_at"]:
    expires = datetime.fromisoformat(token_info["expires_at"])
    days_left = (expires - datetime.now()).days
    if days_left < 7:
        print(f"Warning: Token expires in {days_left} days")
else:
    print("Token has no expiration date")

უფლებათა მისამართი

უფლებათა ფორმატის მიხედვით resource:action. გამოყენება resource:* რესურსის სრული წვდომისთვის, ან *:* სრული API წვდომისთვის.

რესურსი ხელმისაწვდომი მოქმედებები
servers list, create, update, delete, power, backup, snapshot, resize, exec, *
domains list, search, register, update, renew, *
dns list, create, update, delete, *
snapshots list, delete, *
backups list, restore, *
ssh-keys list, create, delete, *
plans list, *
locations list, *
operating-systems list, *
deployments list, create, delete, *
Manage your tokens: Create, edit, and revoke API tokens at admin.vps.org/account/developers/