这是我的 Controller 方法,其中接受枚举
@GetMapping("/{sortBy}/{page}/{size}")
public ResponseDto<ReviewsResponseDto, Void> searchAllReviews(
@PathVariable(value = "sortBy") ReviewsSortBy sortBy,
@PathVariable Integer page, @PathVariable Integer size)
这是我的枚举 ReviewsSortBy
@Getter
@ToString
public enum ReviewsSortBy {
DEFAULT,
FEATURED,
RECENT;
}
现在的问题是 swagger 不会在下拉列表中显示枚举的可能值,而是仅将“ReviewsSortBy()”显示为下拉列表中唯一可选的值。
注意:Swagger 版本 2.9.2
最佳答案
看起来您正在使用 springboot 和 springfox。我有一个类似的问题,但不是完全相同的问题。使用 Spring 请求映射注释的 consumes
属性显式指定允许的内容类型会导致 Swagger 中的枚举下拉字段变成文本框。
文本输入
@PostMapping(value = "/items/{uuid}/images",
produces = MediaType.APPLICATION_JSON_UTF8_VALUE,
consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@PreAuthorize(Scopes.PUBLISH)
public ImageMetadataDTO upload(@PathVariable @Uuid String
@RequestParam(value = "graphicType") GraphicType
枚举下拉列表
@PostMapping(value = "/items/{uuid}/images",
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@PreAuthorize(Scopes.PUBLISH)
public ImageMetadataDTO upload(@PathVariable @Uuid String
@RequestParam(value = "graphicType") GraphicType
关于java - Swagger 枚举值未显示在下拉列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075653/