Skip to content

Commit fb9206c

Browse files
author
bnasslahsen
committed
Improve compatibility of springdoc-openapi-data-rest with Spring Webflux. Fixes #477.
1 parent 441e207 commit fb9206c

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

springdoc-openapi-data-rest/pom.xml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
<version>${project.version}</version>
1717
</dependency>
1818
<dependency>
19-
<groupId>org.springframework.boot</groupId>
20-
<artifactId>spring-boot-starter-data-rest</artifactId>
19+
<groupId>org.springframework.data</groupId>
20+
<artifactId>spring-data-rest-core</artifactId>
2121
</dependency>
2222
<dependency>
2323
<groupId>org.hibernate.validator</groupId>
@@ -35,6 +35,11 @@
3535
<artifactId>spring-boot-starter-hateoas</artifactId>
3636
<scope>test</scope>
3737
</dependency>
38+
<dependency>
39+
<groupId>org.springframework.boot</groupId>
40+
<artifactId>spring-boot-starter-data-rest</artifactId>
41+
<scope>test</scope>
42+
</dependency>
3843
<dependency>
3944
<groupId>org.springframework.boot</groupId>
4045
<artifactId>spring-boot-starter-data-jpa</artifactId>

springdoc-openapi-data-rest/src/main/java/org/springdoc/core/SpringDocDataRestConfiguration.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
package org.springdoc.core;
2020

21+
import java.util.Optional;
22+
2123
import com.fasterxml.jackson.core.JsonGenerator;
2224
import com.fasterxml.jackson.databind.SerializerProvider;
2325
import io.swagger.v3.core.converter.AnnotatedType;
@@ -49,16 +51,18 @@ public class SpringDocDataRestConfiguration {
4951

5052
static {
5153
getConfig().replaceWithClass(org.springframework.data.domain.Pageable.class, Pageable.class)
52-
.replaceWithClass(org.springframework.data.domain.PageRequest.class,Pageable.class);
54+
.replaceWithClass(org.springframework.data.domain.PageRequest.class, Pageable.class);
5355
}
5456

5557
@Configuration
5658
@ConditionalOnClass(RepositoryRestConfiguration.class)
5759
class HalProviderConfiguration {
5860

5961
@Bean
60-
public HalProvider halProvider(RepositoryRestConfiguration repositoryRestConfiguration) {
61-
return new HalProvider(repositoryRestConfiguration);
62+
public HalProvider halProvider(Optional<RepositoryRestConfiguration> repositoryRestConfiguration) {
63+
if (repositoryRestConfiguration.isPresent())
64+
return new HalProvider(repositoryRestConfiguration.get());
65+
return null;
6266
}
6367

6468
/**
@@ -68,8 +72,8 @@ public HalProvider halProvider(RepositoryRestConfiguration repositoryRestConfigu
6872
* @see org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalLinkListSerializer#serialize(Links, JsonGenerator, SerializerProvider)
6973
*/
7074
@Bean
71-
public OpenApiCustomiser linksSchemaCustomiser(RepositoryRestConfiguration repositoryRestConfiguration) {
72-
if (!repositoryRestConfiguration.useHalAsDefaultJsonMediaType()) {
75+
public OpenApiCustomiser linksSchemaCustomiser(Optional<RepositoryRestConfiguration> repositoryRestConfiguration) {
76+
if (!repositoryRestConfiguration.isPresent() || !repositoryRestConfiguration.get().useHalAsDefaultJsonMediaType()) {
7377
return openApi -> {};
7478
}
7579
Json.mapper().addMixIn(RepresentationModel.class, RepresentationModelLinksOASMixin.class);

0 commit comments

Comments
 (0)