跳到主要内容

BOOLEAN

简介

通过添加表字段注释 @DataType=bool ,来实现校验参数值是否为 0 或 1。

示例

数据字典

hrm.sys_tasks 人力资源系统 - 系统任务表

列名数据类型非空自增描述
idint(11)主键-
titlevarchar(255)--任务标题
completedtinyint(1)---任务是否完成
  • 创建 hrm.sys_tasks 任务表
    DROP TABLE IF EXISTS hrm.sys_tasks;
    CREATE TABLE hrm.sys_tasks
    (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    completed BOOLEAN COMMENT '0未完成 1完成 @DataType=bool'
    );
  • 表注释 data_type=bool 表示允许 1,0

参数映射和校验

校验规则

  • completed 只能是数字 1 或 0
  • title 必填项
  • id 可选,如果传了 id 参考主键约束

请求

POST http://127.0.0.1:21000
Content-Type: application/json;charset=utf-8
{
"jsonrpc": "2.0",
"method": "hrm.sysTasks.add",
"params": {
"title": "testing boolean type",
"completed": 3
},
"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: completed: 3 does not validate as range(0|1)",
"data": {
"errorCode": "EU.Validator.DataTypeError",
"errorDetails": [
{
"field": "completed",
"fieldValue": 3,
"location": "hrm.sys_tasks",
"message": "completed: 3 does not validate as range(0|1)",
"validator": "range"
}
],
"errorMessage": "completed: 3 does not validate as range(0|1)"
}
},
"id": "client-unique-request-id"
}

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