public void doGet()

in src/main/java/org/apache/sling/graphql/core/servlet/GraphQLServlet.java [219:265]


    public void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
        requestsServed.increment();
        Timer.Context requestTimerContext = requestTimer.time();
        try {
            String suffix = request.getRequestPathInfo().getSuffix();
            if (suffix != null) {
                if (StringUtils.isNotEmpty(suffixPersisted) && suffix.startsWith(suffixPersisted)) {
                    Matcher matcher = patternGetPersistedQuery.matcher(suffix);
                    if (matcher.matches()) {
                        String queryHash = matcher.group(1);
                        String extension = matcher.group(2);
                        String requestExtension = request.getRequestPathInfo().getExtension();
                        if (requestExtension != null && requestExtension.equals(extension)) {
                            if (StringUtils.isNotEmpty(queryHash)) {
                                String query = cacheProvider.getQuery(queryHash, request.getResource().getResourceType(),
                                        request.getRequestPathInfo().getSelectorString());
                                if (query != null) {
                                    boolean isAuthenticated = request.getHeaders("Authorization").hasMoreElements();
                                    StringBuilder cacheControlValue = new StringBuilder("max-age=").append(cacheControlMaxAge);
                                    if (isAuthenticated) {
                                        cacheControlValue.append(",private");
                                    }
                                    response.addHeader("Cache-Control", cacheControlValue.toString());
                                    execute(query, request, response);
                                    cacheHits.increment();
                                } else {
                                    cacheMisses.increment();
                                    response.sendError(HttpServletResponse.SC_NOT_FOUND, "Cannot find persisted query " + queryHash);
                                }
                            }
                        } else {
                            response.sendError(HttpServletResponse.SC_BAD_REQUEST, "The persisted query's extension does not match the " +
                                    "servlet extension.");
                        }
                    } else {
                        response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Unexpected hash.");
                    }
                } else {
                    response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Persisted queries are disabled.");
                }
            } else {
                execute(request.getResource(), request, response);
            }
        } finally {
            requestTimerContext.stop();
        }
    }