跳到主要内容

ENUM

简介

校验枚举类型的请求参数是否在枚举值列表中。

示例

数据字典

hrm.employees 人力资源系统 - 员工表

列名数据类型非空自增描述
emp_noint(11)-主键员工唯一编号
birth_datedate--生日
first_namevarchar(14)--
last_namevarchar(16)--
genderenum('M','F')--性别
hire_datedate--入职日期

参数映射和校验

参数对象的 gender 字段映射 hrm.departments 表 gender 列

插入数据前校验性别数据类型满足以下规则

  • 必须是 'M' 或 'F',其中 M 表示男, F 表示女

请求

POST http://127.0.0.1:21000
Content-Type: application/json;charset=utf-8
{
"jsonrpc": "2.0",
"method": "hrm.employees.add",
"params": {
"empNo": 20000,
"birthDate": "1964-06-02",
"firstName": "Bezalel",
"lastName": "Simmel",
"gender": "E",
"hireDate": "1985-11-21"
},
"id": "client-unique-request-id"
}

响应

该请求被拦截,报错,提示写入的值不在枚举列表内,拒绝操作。

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "validating data type: gender: E does not validate as in(M|F)",
"data": {
"errorCode": "EU.Validator.DataTypeError",
"errorDetails": [
{
"field": "gender",
"fieldValue": "E",
"location": "hrm.employees",
"message": "gender: E does not validate as in(M|F)",
"validator": "in"
}
],
"errorMessage": "gender: E does not validate as in(M|F)"
}
},
"id": "client-unique-request-id"
}

备注: 以上示例在Luwak 1.12.9测试通过。