// [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));
        }