Swagger UI中 @ApiImplicitParam 的 readOnly 没有生效
时间: 2024-03-08 08:47:31 浏览: 121
Swagger UI中的@ApiImplicitParam的readOnly属性是针对文档生成工具的,用于指示生成的文档中该参数是否可写。但是该属性不会影响实际的API调用。如果您希望API参数在实际调用时不可编辑,应该在代码实现中进行验证和设置。您可以在API实现中使用@ModelAttribute注解标注参数,然后在该注解中设置readOnly属性为true,以确保该参数不可编辑。例如:
```java
@PostMapping("/user")
public void addUser(@ModelAttribute("user") @ApiParam(value = "用户信息", readOnly = true) User user) {
// 验证user参数是否可编辑
if (!user.isReadOnly()) {
// 设置user参数为只读
user.setReadOnly(true);
}
// 添加用户逻辑
}
```
此处的User类需要实现isReadOnly和setReadOnly方法。同时,您还需要在Swagger配置文件中为文档生成工具设置readOnly属性为true。
```yaml
swagger:
api:
docket:
enable: true
globalOperationParameters:
- name: "readOnly"
in: "header"
description: "是否只读"
required: false
schema:
type: "boolean"
default: true
```
阅读全文