/// <summary> /// Primary method which will invoke right query in Resolver class TestGraphQueryResolver /// </summary> /// <param name="query"></param> /// <returns></returns> private async Task <ExecutionResult> ExecuteGraphQueryAsync(GraphQLQuery query) { var start = DateTime.UtcNow; // SET UP options to resolve and execute query running. var executionOptions = new ExecutionOptions { Schema = _schema, Query = query?.Query, Inputs = query?.Variables.ToInputs(), ComplexityConfiguration = new ComplexityConfiguration() { MaxDepth = 15 }, UserContext = new GraphQLUserContext { User = _context.HttpContext.User }, EnableMetrics = true, ExposeExceptions = true }; var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false); //ENABLE TRACING FOR LOGGING or Adding in App Insights //if (result != null) //{ // if (result.Operation != null) { result.EnrichWithApolloTracing(start); } // if (result.Extensions == null) { result.Extensions = new Dictionary<string, object>(); } // // using below values in GraphQlFilter // result.Extensions.Add("inputVariables", query?.Variables); // result.Extensions.Add("inputQuery", query?.Query); //} return(result); }
public async Task <IActionResult> Post([FromBody] GraphQLQuery query) { var result = await this.ExecuteGraphQueryAsync(query); return(Ok(result)); }