public <T extends ExecutionResult> T execute() {
assertNotNull(arguments, "Arguments can't be null");
LOGGER.info("Executing request. Operation name: {}. Request: {} ", operationName, requestQuery);
Parser parser = new Parser();
Document document;
try {
document = parser.parseDocument(requestQuery);
} catch (ParseCancellationException e) {
RecognitionException recognitionException = (RecognitionException) e.getCause();
SourceLocation sourceLocation = new SourceLocation(recognitionException.getOffendingToken().getLine(), recognitionException.getOffendingToken().getCharPositionInLine());
InvalidSyntaxError invalidSyntaxError = new InvalidSyntaxError(sourceLocation);
return (T) new GraphQLRxExecutionResult(Observable.just(null), Observable.just(Arrays.asList(invalidSyntaxError)));
}
Validator validator = new Validator();
List<ValidationError> validationErrors = validator.validateDocument(graphQLSchemaHolder.getGraphQLSchema(), document);
if (validationErrors.size() > 0) {
return (T) new GraphQLRxExecutionResult(Observable.just(null), Observable.just(validationErrors));
}
if (executionStrategy == null) {
if (executorService == null) {
executionStrategy = new GraphQLDefaultRxExecutionStrategy(graphQLSchemaHolder, maxQueryDepth, maxQueryComplexity);
} else {
executionStrategy = new GraphQLExecutorServiceRxExecutionStrategy(graphQLSchemaHolder, executorService, maxQueryDepth, maxQueryComplexity);
}
}
RxExecution execution = new RxExecution(graphQLSchemaHolder, maxQueryDepth, maxQueryComplexity, executionStrategy);
ExecutionResult executionResult = execution.execute(graphQLSchemaHolder.getGraphQLSchema(), context, document, operationName, arguments);
return (T) (executionResult instanceof GraphQLRxExecutionResult ?
executionResult : new GraphQLRxExecutionResult(Observable.just(executionResult.getData()), Observable.just(executionResult.getErrors())));
}
GraphQLQueryExecutor.java 文件源码
java
阅读 16
收藏 0
点赞 0
评论 0
项目:spring-graphql-common
作者:
评论列表
文章目录