التحقق من الحقول

تحقق قابل لإعادة الاستخدام لنماذج التدفقات والأنظمة الخلفية للشركاء.

التحقق من حقل

POST /api/v1/validate/field

{
  "field": {
    "key": "email",
    "type": "email",
    "label": "E-mail",
    "required": true
  },
  "value": "not-an-email"
}

الاستجابة

{
  "ok": false,
  "key": "email",
  "value": null,
  "error": "Adresse e-mail invalide.",
  "code": "format"
}

الصيغة المختصرة

{
  "type": "phone",
  "key": "phone",
  "value": "+228XXXXXXXX"
}

التحقق من نموذج

POST /api/v1/validate/form

{
  "fields": [
    { "key": "full_name", "type": "text", "label": "Nom", "required": true },
    { "key": "email", "type": "email", "label": "E-mail", "required": false },
    { "key": "phone", "type": "phone", "label": "Téléphone", "required": true }
  ],
  "values": {
    "full_name": "Ama",
    "email": "[email protected]",
    "phone": "+22890000000"
  }
}
  • 200 عندما تكون ok: true
  • 422 عند فشل التحقق (يتضمن الجسم دائمًا errors)
{
  "ok": false,
  "values": {},
  "errors": {
    "email": "Adresse e-mail invalide."
  },
  "error_list": [
    { "key": "email", "code": "format", "error": "Adresse e-mail invalide.", "label": "E-mail" }
  ],
  "first_error": "Adresse e-mail invalide."
}

أنواع الحقول المتوافقة

typeالقواعد
textrequired، الحد الأدنى/الأقصى للطول، regex اختياري
emailبريد إلكتروني بتنسيق RFC
phoneE.164 بعد التطبيع (+…)
number / integerرقمي؛ حدود دنيا/قصوى اختيارية
dateYYYY-MM-DD
booleanنعم/لا
selectيجب أن تكون القيمة ضمن options[].id

قواعد مخصصة لحقل

{
  "key": "nif",
  "type": "text",
  "required": true,
  "validation_regex": "^[A-Z0-9-]{6,20}$",
  "validation_message": "NIF invalide",
  "min_length": 6,
  "max_length": 20
}

بدائل تستخدم JWT للعميل

يمكن لتطبيقات المستخدم النهائي استدعاء:

  • POST /api/v1/me/validate/field
  • POST /api/v1/me/validate/form

للجسم الصيغة نفسها؛ وتستخدم المصادقة رمز Bearer الخاص بالمستخدم.