我在startDate
的班级endDate
和LocalDateTime
中有两个字段。在内部,这些需要以Optional<ZonedDateTime>
的形式返回,而在查询中它们以LocalDateTimes的形式提供。
@ApiModel
public class SearchQuery {
private static final ZoneId UTC_TIMEZONE = ZoneId.of("UTC");
@ApiParam(value = "Start date and time of the requested time frame.", example = "2019-06-01T12:30", defaultValue = "0000-01-01T00:00")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime startDate;
@ApiParam(value = "End date and time of the requested time frame.", example = "2019-06-30T23:59", defaultValue = "9999-12-31T23:59")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime endDate;
public LocalDateTime getStartDate() {
return this.startDate;
}
public LocalDateTime getEndDate() {
return this.endDate;
}
public Optional<ZonedDateTime> getStartDateWithTimezone() {
return Optional.ofNullable(startDate)
.map(date -> date.atZone(UTC_TIMEZONE));
}
public Optional<ZonedDateTime> getEndDateWithTimezone() {
return Optional.ofNullable(endDate)
.map(date -> date.atZone(UTC_TIMEZONE));
}
}
Swagger(Springfox v2.9.2)现在显示了必填字段,还显示了endDateWithTimezone.present
和startDateWithTimezone.present
,它们当然都不需要作为参数:
我已经尝试了一段时间,以找到将这些隐藏在我昂扬的文档中的方法。我该怎么办?
答案 0 :(得分:0)
我相信这可能是重复的吗?:https://stackoverflow.com/a/41677559/8932643
Ronny Shibley答案:
对于参数
public void getApi(@ApiIgnore String param){}
@ApiModelProperty(hidden="true")
public String paramInsideClass
答案 1 :(得分:0)
最终的解决方案非常简单。
您必须直接在要隐藏的 getter 上使用注释 @ApiModelProperty(hidden = true)
。