diff --git a/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebFluxGraphQLAutoConfiguration.java b/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebFluxGraphQLAutoConfiguration.java index 2e68cf10..3b251975 100644 --- a/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebFluxGraphQLAutoConfiguration.java +++ b/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebFluxGraphQLAutoConfiguration.java @@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.graphql.WebFluxGraphQLHandler; import org.springframework.http.MediaType; @@ -50,11 +51,15 @@ public class WebFluxGraphQLAutoConfiguration { } @Bean - public RouterFunction graphQLQueryEndpoint(ResourceLoader resourceLoader, WebFluxGraphQLHandler handler, - GraphQLProperties graphQLProperties) { + public RouterFunction graphQLQueryEndpoint( + ResourceLoader resourceLoader, WebFluxGraphQLHandler handler, GraphQLProperties properties) { + + String path = properties.getPath(); + Resource resource = resourceLoader.getResource("classpath:graphiql/index.html"); + return RouterFunctions.route() - .GET(graphQLProperties.getPath(), req -> ServerResponse.ok().bodyValue(resourceLoader.getResource("classpath:graphiql/index.html"))) - .POST(graphQLProperties.getPath(), accept(MediaType.APPLICATION_JSON).and(contentType(MediaType.APPLICATION_JSON)), handler) + .GET(path, req -> ServerResponse.ok().bodyValue(resource)) + .POST(path, accept(MediaType.APPLICATION_JSON).and(contentType(MediaType.APPLICATION_JSON)), handler) .build(); } diff --git a/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebMvcGraphQLAutoConfiguration.java b/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebMvcGraphQLAutoConfiguration.java index 0a8ec093..802c7583 100644 --- a/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebMvcGraphQLAutoConfiguration.java +++ b/spring-graphql-web/src/main/java/org/springframework/boot/graphql/WebMvcGraphQLAutoConfiguration.java @@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.graphql.WebMvcGraphQLHandler; import org.springframework.http.MediaType; @@ -50,11 +51,15 @@ public class WebMvcGraphQLAutoConfiguration { } @Bean - public RouterFunction graphQLQueryEndpoint(ResourceLoader resourceLoader, WebMvcGraphQLHandler handler, - GraphQLProperties graphQLProperties) { + public RouterFunction graphQLQueryEndpoint( + ResourceLoader resourceLoader, WebMvcGraphQLHandler handler, GraphQLProperties properties) { + + String path = properties.getPath(); + Resource resource = resourceLoader.getResource("classpath:graphiql/index.html"); + return RouterFunctions.route() - .GET(graphQLProperties.getPath(), req -> ServerResponse.ok().body(resourceLoader.getResource("classpath:graphiql/index.html"))) - .POST(graphQLProperties.getPath(), contentType(MediaType.APPLICATION_JSON).and(accept(MediaType.APPLICATION_JSON)), handler) + .GET(path, req -> ServerResponse.ok().body(resource)) + .POST(path, contentType(MediaType.APPLICATION_JSON).and(accept(MediaType.APPLICATION_JSON)), handler) .build(); }