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()); } }
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); } }
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); } }