Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ data class GraphQLConfigurationProperties(
val packages: List<String>,
val federation: FederationConfigurationProperties = FederationConfigurationProperties(),
val subscriptions: SubscriptionConfigurationProperties = SubscriptionConfigurationProperties(),
val playground: PlaygroundConfigurationProperties = PlaygroundConfigurationProperties()
val playground: PlaygroundConfigurationProperties = PlaygroundConfigurationProperties(),
val sdl: SDLConfigurationProperties = SDLConfigurationProperties()
)

/**
Expand Down Expand Up @@ -61,3 +62,13 @@ data class PlaygroundConfigurationProperties(
/** Prisma Labs Playground GraphQL IDE endpoint, defaults to 'playground' */
val endpoint: String = "playground"
)

/**
* SDL endpoint configuration properties.
*/
data class SDLConfigurationProperties(
/** Boolean flag indicating whether SDL endpoint is enabled */
val enabled: Boolean = true,
/** GraphQL SDL endpoint */
val endpoint: String = "sdl"
)
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package com.expediagroup.graphql.spring

import kotlinx.coroutines.ExperimentalCoroutinesApi
import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
import org.springframework.context.annotation.Bean
Expand All @@ -39,7 +38,6 @@ class PlaygroundAutoConfiguration(
) {

@Bean
@ExperimentalCoroutinesApi
fun playgroundRoute(): RouterFunction<ServerResponse> {
val body = playgroundHtml.inputStream.bufferedReader().use { reader ->
reader.readText()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.type.MapType
import com.fasterxml.jackson.databind.type.TypeFactory
import graphql.schema.GraphQLSchema
import kotlinx.coroutines.ExperimentalCoroutinesApi
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.http.HttpMethod
Expand All @@ -49,7 +49,6 @@ class RoutesConfiguration(
private val mapTypeReference: MapType = TypeFactory.defaultInstance().constructMapType(HashMap::class.java, String::class.java, Any::class.java)

@Bean
@ExperimentalCoroutinesApi
fun graphQLRoutes() = coRouter {
(POST(config.endpoint) or GET(config.endpoint)).invoke { serverRequest ->
val graphQLRequest = createGraphQLRequest(serverRequest)
Expand All @@ -60,7 +59,12 @@ class RoutesConfiguration(
badRequest().buildAndAwait()
}
}
GET("/sdl") {
}

@Bean
@ConditionalOnProperty(value = ["graphql.sdl.enabled"], havingValue = "true", matchIfMissing = true)
fun sdlRoute() = coRouter {
GET(config.sdl.endpoint) {
ok().contentType(MediaType.TEXT_PLAIN).bodyValueAndAwait(schema.print())
}
}
Expand Down