字段验证
可复用于流程表单和合作伙伴后端的验证功能。
验证单个字段
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"
}
}
ok: true时返回200- 验证失败时返回
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 | 规则 |
|---|---|
text | 必填、最小/最大长度、可选正则表达式 |
email | RFC 风格电子邮箱地址 |
phone | 规范化后的 E.164(+…) |
number / integer | 数值;可选最小值/最大值 |
date | YYYY-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/fieldPOST /api/v1/me/validate/form
请求正文具有相同结构,并使用用户的 Bearer 令牌进行身份验证。