ENUM
简介
校验枚举类型的请求参数是否在枚举值列表中。
示例
数据字典
hrm.employees 人力资源系统 - 员工表
列名 | 数据类型 | 非空 | 自增 | 键 | 描述 |
---|---|---|---|---|---|
emp_no | int(11) | 是 | - | 主键 | 员工唯一编号 |
birth_date | date | 是 | - | - | 生日 |
first_name | varchar(14) | 是 | - | - | 姓 |
last_name | varchar(16) | 是 | - | - | 名 |
gender | enum('M','F') | 是 | - | - | 性别 |
hire_date | date | 是 | - | - | 入职日期 |
参数映射和校验
参数对象的 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测试通过。