在 Spring Boot 2 中,我使用一个对象来保存一组参数,如下所示。问题是如何将 swagger 中的每个字段记录为参数。目前 swagger-ui 将单个参数呈现为对象,而不是对象中的每个字段都是参数。
@GetMapping(path = "/date", produces = MediaType.APPLICATION_JSON_VALUE)
@Operation(summary = "Blah blah.")
public ResponseDto getTacreps(
@Valid QueryParametersDto queryParametersDto) {...}
@Value
@NoArgsConstructor(force = true)
public class QueryParametersDto {
@JsonProperty(USER_SELECTED_AUTHORITIES)
@NotBlank
private final String userSelectedAuthorities;
@JsonProperty(JUSTIFICATION)
@NotBlank
@Size(min = 1, max = 4000)
private final String justification;
...
}
要实现此目的,请将控制器方法参数标记为
@ParameterObject
:
public ResponseDto getTacreps( @Valid @ParameterObject QueryParametersDto queryParametersDto) {...}
如Springdoc中所述:
用
注释的请求参数将有助于添加 参数的每个字段作为单独的请求参数。@ParameterObject