如何在Swagger中实现字符串长度校验及空字符串检查(允许Null)
在Swagger中实现字符串非空(允许Null)+ 长度校验的方案
要实现允许Null值、拒绝空字符串、同时限制长度70-100的校验,直接在现有配置上调整即可,具体如下:
核心配置修改
type: string nullable: true # 明确允许字段为Null maxLength: 100 minLength: 70 # 若minLength≥1,空字符串已被minLength拦截,可省略下面的pattern;若需更严格(比如禁止全空格),则保留 pattern: ".+" example: 'abcddedssk' x-constraint-messages: minLength: ACCOUNT_GUID_MIN_LENGTH maxLength: ACCOUNT_GUID_MAX_LENGTH pattern: ACCOUNT_GUID_EMPTY_NOT_ALLOWED # 空字符串对应的错误提示码
关键说明
nullable: true:必须添加这个字段,OpenAPI默认不允许Null值,配置后才会放行Null。- 空字符串拦截逻辑:
- 你当前设置的
minLength:70已经能自动拦截空字符串(空字符串长度为0,小于70),所以如果业务要求字符串长度必须≥70,这一项就足够,不需要额外配置pattern。 - 如果你后续需要调整
minLength为0或1,但仍要拒绝空字符串,就需要加上pattern: ".+",这个规则会强制字符串至少包含一个任意字符,彻底排除空字符串;要是还想禁止全空格的“伪空”字符串,可以用pattern: "^\\S+$"(匹配至少一个非空白字符)。
- 你当前设置的
- 自定义错误提示:在
x-constraint-messages里对应pattern添加错误码,方便返回统一的业务提示。
内容的提问来源于stack exchange,提问作者manu
相关产品推荐
相关产品推荐

