Как я могу задокументировать объекты, на которые я не владею?
Я возвращаю Page<SomeObject>
В моем методе endpoints. В моем пользовательском интерфейсе OpenAPI, как я могу создать описание полей, которые поступают изorg.springframework.data.domain.Page
тип. Обычно я перехожу к объекту, который хочу задокументировать, и аннотирую его поля с помощью@Schema(description = "some description")
. Но у меня нет доступа кPage
класс. Как я могу задокументировать его поля?
Вероятно, мне здесь не хватает чего-то простого, но любая помощь будет принята с благодарностью.
PS: я использую OpenAPI v3 и springdoc
1 ответ
Вы можете использовать OpenApiCustomiser.
Скажем, например, у вас есть этот контроллер:
@RestController общедоступный класс HelloController {
@GetMapping("/hello")
Page<PersonDTO> getPage() {
return null;
}
}
Предположим, вы хотите добавить описание элемента Pageable:
@Bean
public OpenApiCustomiser pageableOpenApiCustomiser() {
return openApi -> {
Schema pageableSchema = openApi.getComponents().getSchemas().get("Pageable");
pageableSchema.setDescription("my description");
};
}
Та же самая логика применима к любому другому атрибуту, который вы настроили.