Swagger 2 将所有字段标记为参数

问题描述 投票:0回答:1

在 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;
  ...
}

java spring-boot swagger-ui swagger-2.0
1个回答
0
投票

要实现此目的,请将控制器方法参数标记为

@ParameterObject
:

public ResponseDto getTacreps( @Valid @ParameterObject QueryParametersDto queryParametersDto) {...}

Springdoc中所述:

@ParameterObject
注释的请求参数将有助于添加 参数的每个字段作为单独的请求参数。

© www.soinside.com 2019 - 2024. All rights reserved.