رمز واحد، يُنشأ من لوحة العميل
يُرسَل بصفته bearer token. يمكن قصر نطاقه على القراءة فقط أو على خدمة واحدة عند الرغبة؛ والرموز مستقلة عن كلمة المرور، وإلغاء أحدها لا يُنهي تسجيل الدخول أبدا.
JSON عبر HTTPS. لا حاجة إلى SDK، ولا حساب مطور منفصل، ولا نقطة نهاية موجودة في اللوحة وغير موجودة هنا.
إنشاء خادم
curl -X POST https://api.vpsoffshore.com/v1/servers \
-H "Authorization: Bearer $TOKEN" \
-d '{"plan":"reef","image":"debian-13"}'يعاد معرف تكوين (build id) فورا. يستجيب الجهاز عبر SSH بعد نحو ستين ثانية، ويوجه العنوان قبل إرسال بيانات الاعتماد.
20 نقطةً
عنوان URL الأساسي https://api.vpsoffshore.com/v1. الإصدار جزء من المسار؛ يستمر عمل v1 عند وجود v2، ويُعلن عن تاريخ توقفه قبل عام من حدوثه.
الخوادم
التخزين
الشبكات
الكتالوج
الفوترة
كل ما تستطيع لوحة العميل فعله موجود هنا، ولا شيء هنا غائب عن اللوحة. وعند وجود تعارض بينهما فذلك خلل — يمكن إبلاغنا من اللوحة ليُصلَح بدلاً من توثيقه كسلوك مقصود.
كيف يعمل
يُحكم على واجهة API من مساراتها السيئة لا من مساراتها الجيدة. ثلاثة من العناصر الأربعة أدناه تتعلق بما يحدث عند حدوث خطأ.
رمز واحد، يُنشأ من لوحة العميل
يُرسَل بصفته bearer token. يمكن قصر نطاقه على القراءة فقط أو على خدمة واحدة عند الرغبة؛ والرموز مستقلة عن كلمة المرور، وإلغاء أحدها لا يُنهي تسجيل الدخول أبدا.
إدخال JSON وإخراج JSON، دون الحاجة إلى SDK
HTTPS عادي دون أي غلاف مخصص، ودون بديل XML، ودون طقوس توقيع. إن كان curl قادرا على تنفيذه، فذلك يكفي كعميل. توجد مكتبات رسمية بلغات Go وPython وTypeScript، وليس استخدام أي منها إلزاميا.
حدود معدل لا يجري تجاوزها عن طريق الخطأ
600 طلب في الدقيقة لكل رمز، و60 لعمليات الإنشاء. تحمل كل استجابة الميزانية المتبقية في ترويسة، وتجاوزها يُرجع الرمز 429 مع عدد الثواني الواجب انتظارها — دون إسقاط صامت أبدًا.
أخطاء توضّح ما يجب فعله
رمز الحالة 4xx يحمل كودًا قابلاً للقراءة الآلية، وجملة مفهومة للبشر، والحقل المسبِّب للخطأ. تُفضَّل إعادة رسالة خطأ طويلة على رسالة قصيرة تفرض التخمين.
الأمران اللذان يُكتبان مرة واحدة
يستحق كلاهما القراءة قبل كتابة أول استدعاء لا بعد أول عطل.
المصادقة
curl https://api.vpsoffshore.com/v1/servers \
-H "Authorization: Bearer $TOKEN"
تُنشأ الرموز في لوحة العميل ويمكن حصر صلاحياتها بالقراءة فقط أو بخدمة واحدة. وهي مستقلة عن كلمة المرور، وإلغاء أحدها لا يُسجِّل الخروج من أي مكان.
الاطلاع على حدّ المعدّل
X-RateLimit-Remaining: 574
X-RateLimit-Reset: 41
في كل استجابة، لا في التي تفشل فقط. يؤدي تجاوز الحد إلى إرجاع 429 مع عدد الثواني الواجب الانتظار، من دون إسقاط صامت ومن دون اختصار الاستجابة أبدا.
توضّح رسالة الخطأ الحقل المعني
{"error":"plan_unknown",
"message":"No plan named 'reff'. Did you mean 'reef'?",
"field":"plan"}
رمز قابل للقراءة الآلية، وجملة مفهومة للبشر، والحقل المعنيّ بالخطأ. الأخطاء المطوّلة أقل تكلفة من الأخطاء المقتضبة التي تستوجب التخمين.
الاستعلام عن حالة البناء
curl https://api.vpsoffshore.com/v1/servers/$ID \
-H "Authorization: Bearer $TOKEN" | jq .state
تنتقل الحالة من building إلى running. لا يوجد webhook يجب تسجيله قبل إمكان إنشاء أي شيء، والاستطلاع مرة كل ثانية يقع ضمن الحد المسموح.
لا حاجة لتقديم طلب
لا حساب مطوّرين، لا موافقة، ولا بيئة تجريبية (sandbox) تتصرف بشكل مختلف عن بيئة الإنتاج.
المقال التالي
إلى أين تتجه من هنا