Miqyaslar, URL-lər və sorğu formatı

REST API URL-lərinin layihə ID-sindən qurulması, sorğu və cavab başlıqları, həmçinin gövdələrin, vaxt göstəricilərinin və məbləğlərin formatı.

Bu istinad REST API URL-lərinin necə qurulduğunu, sorğuların və cavabların hansı başlıqları daşıdığını, sorğu və cavab gövdələrinin necə formatlandığını təsvir edir. Əməliyyatların özləri üçün API istinadı səhifəsinə baxın.

URL strukturu

Sorğu URL-i bu hissələrdən ibarətdir:

Sorğu URL-inin hissələri
https://<api-host>/api/v1/scopes/<project-id>/<service>/<collection>/<resource-id>/actions/<action>
HissəMənası
https://<api-host>/api/v1Əsas URL: API hostunda /api/v1.
/scopes/<project-id>Resursun aid olduğu layihə (project). API bu ID-ni miqyas (scope) ID-si, scopeId adlandırır.
<service>Xidmət, məsələn, compute, storage və ya network. Xidmətlər bölməsinə baxın.
<collection>Xidmətdəki resurs tipi, məsələn, instances və ya volumes.
<resource-id>Kolleksiyanın bir resursu. Bütöv kolleksiyaya müraciət etmək üçün onu yazmayın.
/actions/<action>Resurs üzərində əməliyyat, məsələn, start və ya stop. Əməliyyatlar həmişə POST sorğularıdır.

Bəzi nümunələr:

SorğuMənası
GET /scopes/<project-id>/compute/instancesLayihənin virtual maşınlarını (instance) sadalamaq.
GET /scopes/<project-id>/compute/instances/<instance-id>Bir virtual maşını oxumaq.
POST /scopes/<project-id>/compute/instances/<instance-id>/actions/stopVirtual maşını dayandırmaq.
DELETE /scopes/<project-id>/storage/volumes/<volume-id>Diski (volume) silmək.

Yola daxil etdiyiniz hər seqmenti, məsələn, ID-ni və ya adı URL-də istifadə üçün kodlaşdırın.

Layihənin ID-sini tapın

Yoldakı miqyas ID-si layihənin ID-sidir. Onu iki yerdə tapa bilərsiniz:

  • Konsolun ünvanı. Layihənin hər səhifəsinin ünvanı dil kodundan sonra /t/<tenant-id>/s/<subscription-id>/project/<project-id>/… formasındadır. /project/ seqmentindən sonra gələn hissə layihənin ID-sidir.
  • API. GET /account/whoami girişiniz olan tenant-ları, abunəlikləri (subscription) və layihələri ID-ləri ilə birlikdə qaytarır.
GET /account/whoami cavabının bir hissəsi
{
  "tenants": [
    {
      "id": "acme",
      "name": "Acme Corp",
      "subscriptions": [
        {
          "id": "acme-production",
          "tenantId": "acme",
          "name": "Production",
          "currency": "TRY",
          "defaultRegion": "ist-1",
          "projects": [
            {
              "id": "acme-production-web-platform",
              "subscriptionId": "acme-production",
              "name": "web-platform",
              "region": "ist-1"
            }
          ]
        }
      ]
    }
  ]
}

Abunəliyin və layihənin adını dəyişdikdə onların ID-ləri dəyişmir. ID-ləri adlardan çıxarmaq əvəzinə onları GET /account/whoami cavabından oxuyun.

whoami əməliyyatını API tokeni (API token) və ya xidmət hesabının (service account) açarı ilə çağırdıqda o, yalnız həmin giriş məlumatının aid olduğu tenant-ı sadalayır.

Xidmətlər

Xidmət seqmentiKolleksiyalarMəhsul
computeinstances, flavors, key-pairsVirtual Machines
computeimagesImages
compute, storagesnapshotsSnapshots
storagevolumes, volume-transfersBlock Storage
storagebuckets, temp-url-keyObject Storage
storagebackup-plansBackup Center
networknetworks, routers, network-interfacesVirtual Networks
networksecurity-groupsSecurity Groups
networkload-balancersLoad Balancers
networkvpnSite-to-Site VPN
networkfloating-ipsFloating IPs
iamusers, roles, service-accounts, api-tokens və digərləriIdentity & Access Management
iamopenstack-credentials, openstack-api-accessOpenStack API Access
observabilityalert-rules, notification-channelsMonitoring & Alerts
billingsummary, cost-reports, budgets, commitments, invoicesCost Management
activityactivity-eventsActivity Log

API-də ölçü (size) flavor adlanır: flavors ölçüləri sadalayır. Bir neçə yol layihəyə aid deyil:

YolTəyinatı
/account/whoamiKimliyiniz, həmçinin girişiniz olan tenant-lar, abunəliklər və layihələr.
/operations/<operation-id>Asinxron əməliyyatı oxumaq. Sinxron və asinxron sorğular bölməsinə baxın.
/operations/<operation-id>/actions/cancelBaşa çatmamış əməliyyatı ləğv etmək.
/regions/<region>/volume-typesRegionun disk tipləri (volume type).

Heç bir xidmətə uyğun gəlməyən yol 404 Not Found qaytarır.

Metodlar

Metodİstifadəsi
GETResursu oxumaq və ya kolleksiyanı sadalamaq.
POSTResurs yaratmaq və ya /actions/<action> ünvanında əməliyyat icra etmək.
PATCHResursun bəzi sahələrini dəyişmək.
PUTParametri bütövlükdə əvəz etmək, məsələn, /tags ünvanında resursun teqlərini (tag).
DELETEResursu silmək.

Sorğu başlıqları

BaşlıqHansı sorğularlaDəyər
AuthorizationHər sorğuBearer və ardınca API tokeni və ya xidmət hesabı açarı. API tokenləri ilə autentifikasiyadan keçin səhifəsinə baxın.
Content-TypeGövdəsi olan sorğularapplication/json
Idempotency-KeyHər POST, PUT, PATCH və DELETE sorğusu. API tokeni və ya xidmət hesabı açarı ilə resurs yaradan POST sorğularında məcburidir.Hər yeni sorğu üçün yeni UUID. İdempotent sorğular səhifəsinə baxın.
If-MatchVersiyanı yoxlayan yeniləmə və silmə sorğularıSon oxumanızdan gələn ETag dəyəri. Paralel dəyişikliklərə nəzarət bölməsinə baxın.
X-Request-IdİxtiyariSorğu üçün öz ID-niz. API onu cavabda qaytarır.

Cavab başlıqları

BaşlıqHansı cavablarlaDəyər
X-Request-IdHər cavabSorğunun ID-si: sizinki və ya API-nin yaratdığı ID.
ETagBir çox resursun oxunması və yenilənməsiResursun versiya identifikatoru, məsələn, W/"3a7bd3e2360a3d29eea436fcfb7e44c735d117c4".
Retry-After429 Too Many RequestsTəkrar cəhddən əvvəl gözləməli olduğunuz saniyələrin sayı.
X-RateLimit-LimitAPI tokeni və ya xidmət hesabı açarı ilə sorğularCari zaman pəncərəsinin icazə verdiyi sorğuların sayı.
X-RateLimit-RemainingAPI tokeni və ya xidmət hesabı açarı ilə sorğularCari zaman pəncərəsində qalan sorğuların sayı.
X-RateLimit-ResetAPI tokeni və ya xidmət hesabı açarı ilə sorğularZaman pəncərəsinin sıfırlanmasına qalan saniyələrin sayı.

Gövdə formatı

  • JSON. Sorğu və cavab gövdələri JSON formatındadır. Sahə adları camel case üslubunda yazılır, məsələn, deletionProtection və ya subscriptionId.
  • Dəyəri olmayan sahələr. Cavabda dəyəri olmayan ixtiyari sahəyə null verilmir, o, ümumiyyətlə daxil edilmir. Sxemin həmişə daxil etdiyi sahə isə cavabda olur və dəyəri olmadıqda null olur.
  • Vaxt göstəriciləri. UTC üzrə ISO 8601 sətirləri, məsələn, 2026-10-08T09:30:00Z.
  • ID-lər. Daxili quruluşu açıqlanmayan sətirlər. Onlardan API-nin qaytardığı kimi, dəyişmədən istifadə edin.
  • Siyahılar. Siyahı əməliyyatı { "data": [...], "meta": {...} } qaytarır. Səhifələmə səhifəsinə baxın.
  • Xətalar. Xəta cavabının öz gövdəsi var. Xətalar səhifəsinə baxın.

Məbləğlər

Pul məbləğləri valyuta vahidinin on mində birləri ilə ifadə olunan tam ədədlərdir. Adı Minor ilə bitən sahədə belə tam ədəd olur, pul obyektində isə bu ədəd amount sahəsində, valyuta currency sahəsində verilir:

Pul obyekti
{ "amount": 125000, "currency": "TRY" }

Bu amount öz valyutasının 12,5 vahidinə bərabərdir: məbləği valyuta vahidi ilə almaq üçün onu 10.000-ə bölün. Bu tam ədədləri qəpik kimi oxumayın.

Nümunə

Layihənin virtual maşınlarını sadalayın
curl "https://<api-host>/api/v1/scopes/<project-id>/compute/instances?page=1&pageSize=50" \
  -H "Authorization: Bearer $PC_TOKEN"
  • <api-host>: API-nin host adı.
  • <project-id>: layihənin ID-si.
  • PC_TOKEN: API tokeninizi saxlayan mühit dəyişəni.

Bu səhifədə