تخطَّ إلى المحتوى

الإصدارات والإهمال

الإصدار مقطع في المسار، وهو المكان الوحيد الذي يظهر فيه:

https://api.zelnum.com/api/v1

يوجد إصدار حيّ واحد. وهويته في مستند OpenAPI هي 1.0.0؛ أما مقطع المسار v1 فهو ما تستهدفه. ولا تكرّر أجسام الاستجابة إصدارًا عن قصد، فلا يوجد حقل ثانٍ يجب مزامنته.

الفئةأمثلةأثرها عليك
إضافيةنقطة نهاية جديدة، أو حقل طلب اختياري جديد، أو حقل استجابة جديد، أو منتج جديد في الكتالوجلا شيء. لا رفع للإصدار، ولا إجراء.
سلوكيةقيمة جديدة داخل تعداد قائم مثل error_code أو billing_status؛ أو تغيّر قيمة افتراضيةلا شيء عادةً، لكنها قد تُفسد المطابقة الاستقصائية.
كاسرةحذف حقل أو إعادة تسميته، أو تغيير نوع، أو تغيير معنى حالة، أو اشتراط ترويسة جديدةتستلزم إصدارًا جديدًا.
العقدكان التوثيق مخطئًا بشأن ما يفعله الـ APIلا شيء — لكن انظر أدناه.

يُصحَّح التوثيق في مكانه عندما يكون سلوك الـ API قد وُصف خطأً. فتلك تغيير في التوثيق، لا في العقد: فالـ API لم يتحرك، بل الوصف. ولأن التصحيح هو بالضبط الحدث الذي لا يمكنك رؤيته في مدخل سجل تغييرات من قبيل “لم يتغيّر شيء”، تُدرَج التصحيحات صراحةً في سجل التغييرات.

وإذا غيّر تصحيح شيئًا كنت قد بنيت عليه، فإنه يظهر هناك كملاحظة لا كتعديل صامت.

عند إهمال عملية تُوسم بـ deprecated: true في مستند OpenAPI، ويوثّق هذا الموقع البديل. وتظل العملية تعمل خلال فترة الإشعار، وتُذكر فترة الإشعار حيث يُعلن الإهمال.

لا يأتي الإهمال في الإصدار نفسه الذي يُقدَّم فيه بديله. فكلاهما حيّ في آن واحد، لتنتقل وفق جدولك أنت لا أثناء حادثة.

حالة الإهمال الوحيدة الحالية

Section titled “حالة الإهمال الوحيدة الحالية”

أُبقي على POST /v1/realtime/detect للعملاء السابقين للإصدار، وهو موسوم كمهمَل في العقد. وينبغي للتكاملات الجديدة استخدام نقاط النهاية الخاصة بكل سلسلة.

إنها إعادة تسمية لا إعادة تصميم — فجسم الطلب والاستجابة بالشكل نفسه:

القديمالحالي
نقطة النهايةPOST /v1/realtime/detectPOST /v1/realtime/check/phone أو POST /v1/realtime/check/email
السلسلةمضمّنة ضمنيًا في المنتجات التي ترسلهاصريحة في المسار، ويجب أن تطابقها
حقل المنتجاتproducts (اسم بديل)product_ids
Idempotency-Keyمطلوبمطلوب

الترحيل تغيير من سطرين:

Terminal window
# Before
curl -X POST "https://api.zelnum.com/api/v1/realtime/detect" \
-H "X-API-Key: YOUR_KEY_HERE" \
-H "Idempotency-Key: UNIQUE_REQUEST_ID" \
-H "Content-Type: application/json" \
-d '{"identifier":"+8613800138000","products":[47]}'
# After — the series moves into the path and the field is renamed
curl -X POST "https://api.zelnum.com/api/v1/realtime/check/phone" \
-H "X-API-Key: YOUR_KEY_HERE" \
-H "Idempotency-Key: UNIQUE_REQUEST_ID" \
-H "Content-Type: application/json" \
-d '{"identifier":"+8613800138000","product_ids":[47]}'

إرسال product_ids وproducts معًا في طلب واحد يُرفض بـ 400 invalid_realtime_request، فلا يجوز خلطهما خلال طرح تدريجي.

  • OpenAPI — العقد القابل للقراءة آليًا، بما في ذلك علامة deprecated
  • سجل التغييرات — ما تغيّر ومتى