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:
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ğu | Mənası |
|---|---|
GET /scopes/<project-id>/compute/instances | Layihə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/stop | Virtual 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/whoamigirişiniz olan tenant-ları, abunəlikləri (subscription) və layihələri ID-ləri ilə birlikdə qaytarır.
{
"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 seqmenti | Kolleksiyalar | Məhsul |
|---|---|---|
compute | instances, flavors, key-pairs | Virtual Machines |
compute | images | Images |
compute, storage | snapshots | Snapshots |
storage | volumes, volume-transfers | Block Storage |
storage | buckets, temp-url-key | Object Storage |
storage | backup-plans | Backup Center |
network | networks, routers, network-interfaces | Virtual Networks |
network | security-groups | Security Groups |
network | load-balancers | Load Balancers |
network | vpn | Site-to-Site VPN |
network | floating-ips | Floating IPs |
iam | users, roles, service-accounts, api-tokens və digərləri | Identity & Access Management |
iam | openstack-credentials, openstack-api-access | OpenStack API Access |
observability | alert-rules, notification-channels | Monitoring & Alerts |
billing | summary, cost-reports, budgets, commitments, invoices | Cost Management |
activity | activity-events | Activity Log |
API-də ölçü (size) flavor adlanır: flavors ölçüləri sadalayır. Bir neçə yol layihəyə aid deyil:
| Yol | Təyinatı |
|---|---|
/account/whoami | Kimliyiniz, 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/cancel | Başa çatmamış əməliyyatı ləğv etmək. |
/regions/<region>/volume-types | Regionun 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 |
|---|---|
GET | Resursu oxumaq və ya kolleksiyanı sadalamaq. |
POST | Resurs yaratmaq və ya /actions/<action> ünvanında əməliyyat icra etmək. |
PATCH | Resursun bəzi sahələrini dəyişmək. |
PUT | Parametri bütövlükdə əvəz etmək, məsələn, /tags ünvanında resursun teqlərini (tag). |
DELETE | Resursu silmək. |
Sorğu başlıqları
| Başlıq | Hansı sorğularla | Dəyər |
|---|---|---|
Authorization | Hər sorğu | Bearer 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-Type | Gövdəsi olan sorğular | application/json |
Idempotency-Key | Hə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-Match | Versiyanı 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 | İxtiyari | Sorğu üçün öz ID-niz. API onu cavabda qaytarır. |
Cavab başlıqları
| Başlıq | Hansı cavablarla | Dəyər |
|---|---|---|
X-Request-Id | Hər cavab | Sorğunun ID-si: sizinki və ya API-nin yaratdığı ID. |
ETag | Bir çox resursun oxunması və yenilənməsi | Resursun versiya identifikatoru, məsələn, W/"3a7bd3e2360a3d29eea436fcfb7e44c735d117c4". |
Retry-After | 429 Too Many Requests | Təkrar cəhddən əvvəl gözləməli olduğunuz saniyələrin sayı. |
X-RateLimit-Limit | API tokeni və ya xidmət hesabı açarı ilə sorğular | Cari zaman pəncərəsinin icazə verdiyi sorğuların sayı. |
X-RateLimit-Remaining | API tokeni və ya xidmət hesabı açarı ilə sorğular | Cari zaman pəncərəsində qalan sorğuların sayı. |
X-RateLimit-Reset | API tokeni və ya xidmət hesabı açarı ilə sorğular | Zaman 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,
deletionProtectionvə yasubscriptionId. - Dəyəri olmayan sahələr. Cavabda dəyəri olmayan ixtiyari sahəyə
nullverilmir, o, ümumiyyətlə daxil edilmir. Sxemin həmişə daxil etdiyi sahə isə cavabda olur və dəyəri olmadıqdanullolur. - 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:
{ "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ə
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.