// [FromBody] GraphQLQuery query vai transformar toda request no objeto da graphql public async Task <ObjectResult> Post([FromBody] GraphQLQuery graphQLQuery) { ExecutionResult result = await new DocumentExecuter() .ExecuteAsync(op => { // Seta o nosso Schema que é composto por nossas Queries e Mutations op.Schema = new Schema() { Query = new ApiQuery(_dataContext), Mutation = new ApiMutation(_dataContext) }; // Query do usuario op.Query = graphQLQuery.Query; // Nome da operacao op.OperationName = graphQLQuery.OperationName; // Seta as var do usuario (pode estar na query) op.Inputs = graphQLQuery.Variables?.ToString().ToInputs(); }).ConfigureAwait(false); string json = new DocumentWriter(indent: true).Write(result); return(new ObjectResult(Newtonsoft.Json.Linq.JObject.Parse(json)));; }
public async Task <IActionResult> Post([FromBody] GraphQLQuery query) { var inputs = query.Variables.ToInputs(); var schema = new Schema() { Query = new EatMoreQuery(_db) }; var result = await new DocumentExecuter().ExecuteAsync(_ => { _.Schema = schema; _.Query = query.Query; _.OperationName = query.OperationName; _.Inputs = inputs; }).ConfigureAwait(false); if (result.Errors?.Count > 0) { return(BadRequest()); } return(Ok(result)); }