private void execute()

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