[v4.5.0]Get/Delete参数是否可以默认勾选,如图所示
805728578 opened this issue · comments
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
- Go to '...'
- Click on '....'
- Scroll down to '....'
- See error
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Knife4j Version (please complete the following information):
v4.5.0
Additional context
Add any other context about the problem here.
参数配置require=true 就勾选了
对于form请求,用OpenAPI3规范的注解,标注require
例如:
@Parameter(name = "id", description = "主键id", required = true, in = ParameterIn.QUERY)
@GetMapping("/getById")
public Result<List<String>> getById(@RequestParam(value = "id") Integer id) {
//...
}
@xiaoymin 能否优化一下,默认勾选啊。如果参数特别多,配置太麻烦了
ui解析是根据规范来的,如果required设置为true,默认就是勾选的,为false,就代表可传可不传。不勾选是合理的
@Schema
注解,有设置requiredMode属性的
@xiaoymin 感觉和这个勾选含义和requiredMode含义不同,勾选是为了表达向后端传递不传递这个参数,requiredMode是为了表达是否必须包含内容片段
举个例子:后端需要接收字段参数其值可以为null,和后端接收不到参数是两个概念
@xiaoymin 感觉和这个勾选含义和requiredMode含义不同,勾选是为了表达向后端传递不传递这个参数,requiredMode是为了表达是否必须包含内容片段
举个例子:后端需要接收字段参数其值可以为null,和后端接收不到参数是两个概念
前端组件交互没有null和空字符的概念,如果body不含参数,就是null,勾选了,传递一个空字符串,也是有值的
默认全部勾选,然后传递一个空字符串过去,后端JSR303验证就会不通过。所以这里和require这个属性绑定,我觉得还是合理的
@xiaoymin 就是操作起来比较繁琐,如果【参数】是非必须字段,【参数值】填完之后还要打勾才能提交给后端
同一套代码,使用原生/swagger-ui/index.html和/doc.html操作完全不一致。
个人觉得【参数】前面的复选框都可以去掉,保持【参数值】对应文本框或下拉框和requiredMode配置保持一致
@805728578 非必填字段没有你说的填完之后还要打勾这个操作吧
如果是非必填,但是在输入框输入的时候,就会默认打勾了
@805728578 非必填字段没有你说的填完之后还要打勾这个操作吧
如果是非必填,但是在输入框输入的时候,就会默认打勾了
@xiaoymin 针对没有默认值的确实输入时就勾选了,针对有默认值的需要二次勾选