字段表达式

Example :

{
    "fields": {
        "name": "varchar(100) required",
        "email": "varchar(100) format email"
    }
}

JSON Schema

Field Pattern Type Description
{name} string {name}是具体字段的名称,对应的值是一个表达式

表达式语法

表达式本质是Field Object用一行字符串来进行简化表示,多个属性之间通过空格分割。

下面是每个属性的表示方式:

Name / Pattern Description
column {name} 指定数据库字段名,不指定按默认规则生成,如name -> namefirstName -> first_name
{type} 表示字段类型,不包括长度,详细请看字段类型
{type}(length) varchar(100),表示字段类型和长度
{type}(precision,scale) decimal(19,8),表示字段类型和长度
identity 表示该字段为主键
primary key 等同于identity
required 表示不能为空
optional 表示允许为空
not null 等同于required
null 表示可以为空,等同于optional
nullable 等同于null,表示可以为空
increment 设置字段为自增长的主键
auto_increment 等同于increment
value {value} 设置固定值,value是一个JSON格式的简单数值或者是一个环境变量
default {value} 设置默认值,value是一个JSON格式的简单数值或者是一个环境变量
columnDefault {value} 设置物理字段的默认值
update false 表示该字段只能被insert,不能被update
logical 表示字段是逻辑字段,不映射到数据库物理字段
internal 表示该字段不发布到接口定义中
sortable 表示该字段可用于排序表达式
filterable 表示该字段可用于过滤表达式
uuid 等同于varchar(36) value uuid,具体请看环境变量
short_uuid 等同于varchar(36) value short_uuid,具体请看环境变量
short_id 等同于varchar(36) value short_id,具体请看环境变量
map 设置字段的数据类型为map<string,object>,同时默认设置字段类型为varchar(4000)
map<string,{type}> 设置字段的数据类型为map<string,{type}>
array 设置字段的数据类型为array<object>,同时默认设置字段类型为varchar(2000)
array<{type}> 设置字段的数据类型为array<{type}>
format {name} 设置字段的格式,如format email
options {name} 设置字段选项集的名称,详细请看字段选项集
input {name} 设置字段的输入类型
meaning {name} 设置字段的含义,目前内置支持title summary description createdAt updatedAt createdBy updatedBy共7个含义,如果字段的name和内置的含义一致,该字段的含义会被自动设置
length[min,max] 设置字段的最小和最大长度,如length[10,]length[10,100]length[,100]
range[min,max] 设置字段的最小和最大数字,如range[1,]range[1,10]range[,10]
pattern[{regex}] 设置字段的校验正则表达式
enum[{values}] 设置枚举值,如enum[1,2]enum['created','updated']
- 设置字段的描述,-符号后的所有内容会被作为字段的描述,如varchar(100) - The description

jmms还支持表达式和JSON Object混合使用,通过一个特殊的$属性:

{
    "fields" : {
        "firstName": {
            "$" : "varchar(100) required",
            "description": "The description"
        }
    }
}
Bingosoft            updated 2018-07-23
上一篇:字段属性 下一篇:字段选项集

results matching ""

    No results matching ""