我有一个班级用户
public class User {
Integer id;
String name;
String department;
.... }
我的控制器
@RestController
@RequestMapping("/user")
public class userResource {
@Autowired
UserRepository userRepository;
@Autowired
UserService userService;
@PostMapping(value = "/")
public ResponseEntity<StatusResponse> createUser(
@RequestBody User user) {
.....}
在 Swagger 中它显示了
{
"department": "string",
"id": 0,
"name": "string"
}
我想在这里隐藏现场部门。我已经使用了@ApiModelProperty(hidden = true)
但我也想在其他地方使用这个实体,并想向部门字段展示这是如何可能的?
public class User {
Integer id;
String name;
@JsonIgnore
String department;
}
我今天也遇到了同样的问题。这是我的解决方案。
用户实体:
public class User {
public String username;
public String password;
}
测试控制器:
@ResponseBody
@PostMapping("/test")
@Operation(description = "SwaggerTest")
@io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(mediaType = "application/json", examples = @ExampleObject("{username: 212}")))
@ApiResponse(content = @Content(mediaType = "application/json", examples = @ExampleObject("{username: 212}")))
public User test(@RequestBody User user){
return user;
}
结果如下:
之前:
通过添加@io.swagger.v3.oas.annotations.parameters.RequestBody和@ApiResponse并设置其content字段,您可以自定义在swagger中显示的内容。
以上所有内容均基于 springdoc-openapi-ui 库。
@n1nja88888,您刚刚更改了默认示例。这里的问题是使用 Swagger 注释选择性地隐藏
department
字段。