diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java index d301d7d53..b12aeb55b 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java @@ -43,6 +43,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedModel; import org.springframework.data.web.config.EnableSpringDataWebSupport; import org.springframework.data.web.config.SpringDataWebSettings; @@ -85,15 +86,16 @@ PageableOpenAPIConverter pageableOpenAPIConverter(ObjectMapperProvider objectMap */ @Bean @ConditionalOnMissingBean - @ConditionalOnBean(SpringDataWebSettings.class) + @ConditionalOnClass({ PagedModel.class, SpringDataWebSettings.class }) @Lazy(false) - PageOpenAPIConverter pageOpenAPIConverter(SpringDataWebSettings settings, + PageOpenAPIConverter pageOpenAPIConverter(Optional settings, ObjectMapperProvider objectMapperProvider) { - return new PageOpenAPIConverter( - settings.pageSerializationMode() == EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO, - objectMapperProvider); + boolean replacePageWithPagedModel = settings.map(SpringDataWebSettings::pageSerializationMode) + .map(EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO::equals) + .orElse(false); + return new PageOpenAPIConverter(replacePageWithPagedModel, objectMapperProvider); } - + /** * Delegating method parameter customizer delegating method parameter customizer. *