in src/main/java/org/apache/sling/graphql/core/servlet/GraphQLServlet.java [308:329]
private void execute(Resource resource, SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
final QueryParser.Result result = QueryParser.fromRequest(request);
if (result == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
return;
}
final String query = result.getQuery();
if (query.trim().length() == 0) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing request parameter:" + P_QUERY);
return;
}
try (JsonWriter writer = Json.createWriter(response.getWriter())) {
Map<String, Object> executionResult = queryExecutor.execute(query, result.getVariables(), resource,
request.getRequestPathInfo().getSelectors());
writer.write(Json.createObjectBuilder(executionResult).build().asJsonObject());
} catch(Exception ex) {
throw new IOException(ex);
}
}