in graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/SpringGraphQLDgsQueryExecutor.kt [47:81]
override fun execute(
query: String,
variables: Map<String, Any>,
extensions: Map<String, Any>?,
headers: HttpHeaders?,
operationName: String?,
webRequest: WebRequest?,
): ExecutionResult {
val request =
DefaultExecutionGraphQlRequest(
query,
operationName,
variables,
extensions,
"",
null,
)
val httpRequest = requestCustomizer.apply(webRequest ?: RequestContextHolder.getRequestAttributes() as? WebRequest, headers)
val dgsContext = dgsContextBuilder.build(DgsWebMvcRequestData(request.extensions, headers, httpRequest))
request.configureExecutionInput { e, builder ->
val dataLoaderRegistry = dgsDataLoaderProvider.buildRegistryWithContextSupplier { e.graphQLContext }
builder
.context(dgsContext)
.graphQLContext(dgsContext)
.dataLoaderRegistry(dataLoaderRegistry)
.build()
}
val response =
executionService.execute(request).block() ?: throw IllegalStateException("Unexpected null response from Spring GraphQL client")
return response.executionResult
}