پرش به مطلب اصلی

مثال‌های خواندن اطلاعات با API

این مثال‌ها اطلاعات را می‌خوانند و سرویس را تغییر نمی‌دهند. پیش از اجرا، Token مدیریت hub را طبق معرفی API از پنل دریافت کنید.

تنظیم اتصال​

در ترمینال، متغیرهای زیر را با مقدار واقعی تنظیم کنید:

export CHABOKAN_API_BASE='https://hub.chabokan.net/api/v1'
export CHABOKAN_API_TOKEN='YOUR_HUB_API_TOKEN'

احراز هویت این API با Authorization: Token ... انجام می‌شود. کلید sk-chbk-... سرویس AI برای این endpointها نیست.

فهرست سرویس‌های ابری​

curl --silent --show-error --fail-with-body \
--header "Authorization: Token ${CHABOKAN_API_TOKEN}" \
--header 'Accept: application/json' \
"${CHABOKAN_API_BASE}/services/"

پاسخ، شیئی با آرایهٔ services است. هر ردیف شامل main_name، platform، checkout_type، checkout_price، ram، cpu، disk، due_date و status است. platform شامل نام پلتفرم است و main_name شناسه‌ای است که در مسیرهای لاگ و استقرار استفاده می‌کنید.

اگر سرویسی در پاسخ نیست، عضویت پذیرفته‌شدهٔ حساب در آن سرویس را بررسی کنید. این فهرست مربوط به سرویس‌های هاست، دیتابیس، برنامهٔ آماده و فضای ذخیره‌سازی است؛ فهرست سرورهای ابری مسیر جدا دارد.

فیلترها​

پارامترنمونهکاربرد
statusonفقط سرویس‌های با وضعیت تعیین‌شده
not_statusonحذف سرویس‌های با وضعیت تعیین‌شده از نتیجه
has_deploytrueسرویس‌های دارای قابلیت استقرار
has_custom_plantrueسرویس‌های دارای قابلیت منابع سفارشی

مثال سرویس‌های روشن با قابلیت استقرار:

curl --silent --show-error --fail-with-body --get \
--header "Authorization: Token ${CHABOKAN_API_TOKEN}" \
--data-urlencode 'status=on' \
--data-urlencode 'has_deploy=true' \
"${CHABOKAN_API_BASE}/services/"

مقدار وضعیت را از پاسخ API بردارید؛ وضعیت سرویس با وضعیت یک استقرار متفاوت است.

فهرست سرورهای ابری​

curl --silent --show-error --fail-with-body \
--header "Authorization: Token ${CHABOKAN_API_TOKEN}" \
"${CHABOKAN_API_BASE}/cloudservers/"

پاسخ شامل success و آرایهٔ user_cloud_servers است. هر ردیف id، hostname و ip دارد. شناسهٔ سرور ابری را با main_name سرویس هاست یکی نگیرید.

مثال Python​

این مثال با کتابخانهٔ استاندارد Python اجرا می‌شود و نام و وضعیت سرویس‌ها را چاپ می‌کند. متغیرهای اتصال بالا باید در محیط تنظیم شده باشند.

import json
import os
from urllib.error import HTTPError, URLError
from urllib.request import Request, urlopen

base_url = os.environ["CHABOKAN_API_BASE"].rstrip("/")
request = Request(
f"{base_url}/services/?has_deploy=true",
headers={
"Authorization": f"Token {os.environ['CHABOKAN_API_TOKEN']}",
"Accept": "application/json",
},
)

try:
with urlopen(request, timeout=30) as response:
data = json.load(response)
for service in data["services"]:
print(service["main_name"], service["status"])
except HTTPError as error:
print(f"HTTP error: {error.code}")
except URLError as error:
print(f"Connection error: {error.reason}")

برای بررسی لاگ‌ها یا ارسال نسخهٔ جدید، مثال‌های استقرار و لاگ را ببینید. برای خطاهای پاسخ، راهنمای خطاها را دنبال کنید.