Пример #1
0
        public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req)
        {
            var queryParam = req.Query["query"];

            if (string.IsNullOrEmpty(queryParam))
            {
                return(new BadRequestObjectResult("query parameter is missing. please pass it accordind to GraphQL standards in order to be able to retrieve data"));
            }

            try
            {
                var query = new QueryRequest
                {
                    Query = queryParam
                };

                var result = schemaProvider.ExecuteQuery(query, context, null, null);

                if (result.Errors.Any())
                {
                    return(new BadRequestObjectResult(JsonConvert.SerializeObject(result.Errors)));
                }

                return(new OkObjectResult(JsonConvert.SerializeObject(result.Data)));
            }
            catch (Exception)
            {
                return(new BadRequestResult());
            }
        }
Пример #2
0
 public object Post([FromBody] QueryRequest query)
 {
     try
     {
         var results = _schemaProvider.ExecuteQuery(query, _dbContext, null, null);
         // gql compile errors show up in results.Errors
         return(results);
     }
     catch (Exception)
     {
         return(HttpStatusCode.InternalServerError);
     }
 }
Пример #3
0
 private object RunDataQuery(QueryRequest query)
 {
     try
     {
         // _serviceProvider is passed to resovle dependencies in mutations and field selections at run time which opens a lot of flexibility
         // last argument can be claims to implement security checks
         var data = _schemaProvider.ExecuteQuery(query, _dbContext, HttpContext.RequestServices, null);
         return(data);
     }
     catch (Exception)
     {
         return(HttpStatusCode.InternalServerError);
     }
 }