Package org.apache.sling.graphql.api.cache

# Interface GraphQLCacheProvider

@ProviderType public interface GraphQLCacheProvider
A `GraphQLCacheProvider` is responsible for caching GraphQL queries, in order to provide support for persisted queries for the `GraphQLServlet`.

## Method Summary

Modifier and Type
Method
Description
`@Nullable String`
`cacheQuery(@NotNull String query, @NotNull String resourceType, @Nullable String selectorString)`
Stores the `query` into the cache, potentially overriding a previous value.
`@Nullable String`
`getQuery(@NotNull String hash, @NotNull String resourceType, @Nullable String selectorString)`
Attempts to retrieve a previously persisted query from the cache.

## Method Details

### getQuery

@Nullable @Nullable String getQuery(@NotNull @NotNull String hash, @NotNull @NotNull String resourceType, @Nullable @Nullable String selectorString)
Attempts to retrieve a previously persisted query from the cache.

Parameters:
  `hash` - the query's SHA-256 hash
  `resourceType` - the resource type of the `GraphQLServlet` which will execute the query, since multiple servlets can be registered
  `selectorString` - the selector string with which the `GraphQLServlet` is registered
Returns:
  the query, if found, `null` otherwise
See Also:
  - `cacheQuery(String, String, String)`

### cacheQuery

@Nullable @Nullable String cacheQuery(@NotNull @NotNull String query, @NotNull @NotNull String resourceType, @Nullable @Nullable String selectorString)
Stores the `query` into the cache, potentially overriding a previous value. The method will return the query's SHA-256 hash if the persisting operation was successful. If not, a `null` value must be returned.

Parameters:
  `query` - the GraphQL query
  `resourceType` - the resource type of the `GraphQLServlet` which will execute the query, since multiple servlets can be registered
  `selectorString` - the selector string with which the `GraphQLServlet` is registered
Returns:
  the query's SHA-256 hash, if the query was successfully cached; `null` if the query could not be cached