Прежде всего, я добавил Springdoc-openapi-starter-webmvc-ui< /code> как зависимость в моем файле pom.xml:
Код: Выделить всё
org.springdoc
springdoc-openapi-starter-webmvc-ui
2.3.0
API предназначен для возврата списка результатов поиска, упакованного в объект нумерации страниц. Результаты поиска абстрактно определяются следующим образом (для удобства чтения я опустил описания полей схемы):
Код: Выделить всё
@Data
public abstract class SearchItemData {
private String externalId;
private String type;
private String name;
private String description;
@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "Europe/Copenhagen")
private Date published;
private String address;
private String phase;
private Long estimatedSum;
private Long buildingArea;
private String projectStart;
private String projectEnd;
private List roles;
}
Код: Выделить всё
@EqualsAndHashCode(callSuper = true)
@Data
public class ProjectData extends SearchItemData {
// ...
}
@EqualsAndHashCode(callSuper = true)
@Data
public class ProcurementData extends SearchItemData {
// ...
}
Код: Выделить всё
@Data
public class SearchItemPage {
int page;
int pageCount;
int pageSize;
long totalResults;
// TODO anyOf
@Schema(
description = "Array of projects and/or procurements, matching the search parameters",
oneOf = { ProjectData.class, ProcurementData.class }
)
List results;
Long procurementCount;
Long projectCount;
}

Схема для ProjectData и ProcurementData верна, но похоже, что наследование не работает аннотация "oneOf" не очень хорошо сочетается. Я вижу логику того, почему все идет не так, но не могу найти решение.
Я попробовал определить список как List
Подробнее здесь: https://stackoverflow.com/questions/789 ... tract-fiel
Мобильная версия