قراردادهای API
نشانی پایه، احراز هویت، خطاها، زبانها، عملیات ناهمگام و مقادیر وضعیت که برای همهٔ نقاط پایانی صدق میکنند.
نشانی پایه و قالب
همهٔ نقاط پایانی زیر مسیر /api و روی همان میزبان داشبورد هستند، مثلاً https://veneshcloud.ir/api. درخواست و پاسخ JSON است. هدر Accept: application/json را بفرستید و اگر بدنه دارید Content-Type: application/json را هم.
احراز هویت
کلید API خود را بهصورت Authorization: Bearer <key> بفرستید. نقاط پایانی که در مرجع عمومی علامت خوردهاند به کلید نیاز ندارند. کلید نبودن یا ابطالشده بودن 401 میدهد.
خطاها
| وضعیت | معنی |
|---|---|
401 |
کلید یا توکن معتبر نیست. |
403 |
منبع وجود دارد اما متعلق به حساب دیگری است. |
404 |
پیدا نشد. |
422 |
ورودی نامعتبر است یا عملیات در وضعیت فعلی منبع مجاز نیست (مثلاً تغییر اندازهٔ ماشین متوقف). |
429 |
درخواست بیش از حد. نقاط پایانی ثبتنام، ورود و کد بهازای هر آدرس محدود هستند. صبر کنید و دوباره تلاش کنید. |
بدنهٔ خطا شامل message است. خطاهای اعتبارسنجی یک شیء errors هم دارند که برای هر فیلد فهرستی از پیامها را میدهد.
زبان
هدر Accept-Language: fa یا en را بفرستید تا پیامهای خطا به فارسی یا انگلیسی بیایند. هر مقدار دیگری به انگلیسی برمیگردد. فقط متن تغییر میکند، نه ساختار.
عملیات ناهمگام
ساخت ماشین و عملیات روی آن زمان میبرد؛ پس API سریع پاسخ میدهد و کار در پسزمینه تمام میشود.
- عملیات را صدا بزنید، مثلاً
POST /orders/{order}/actions/stop. با202و ماشین در وضعیت در جریان، مثلاًstopping، پاسخ میدهد. - هر چند ثانیه
GET /orders/{order}را بپرسید. - وقتی وضعیت یکی از وضعیتهای پایدار بود توقف کنید:
running،stopped،failedیاterminated.
وضعیتهای در جریان: pending، provisioning، starting، stopping، rebooting، resizing، reinstalling، restoring و deleting. اگر ماشین به failed رسید، failure_reason دلیل را میگوید.
تغییرات شبکهٔ خصوصی و استقرار اپلیکیشنها با فیلدهای وضعیت خودشان از همین الگو پیروی میکنند.
مبالغ و فهرستها
مبالغ برای نمایش به ریال و در فیلدهایی هستند که با _rial تمام میشوند. نقاط پایانی فهرست per_page میپذیرند و فهرستهای صفحهبندیشده کنار data یک شیء meta برمیگردانند.
صفحههای مرتبط
هر صفحهٔ مرجع همهٔ فیلدها و یک نمونهٔ curl را نشان میدهد؛ از نمای کلی توسعهدهندگان شروع کنید.