Class CacheControlInstrumentation
java.lang.Object
graphql.execution.instrumentation.SimplePerformantInstrumentation
com.apollographql.federation.graphqljava.caching.CacheControlInstrumentation
- All Implemented Interfaces:
graphql.execution.instrumentation.Instrumentation
public class CacheControlInstrumentation
extends graphql.execution.instrumentation.SimplePerformantInstrumentation
A GraphQL Java Instrumentation that computes a max age for an operation based on @cacheControl
directives.
You can retrieve the "max-age=..." header value with a GraphQLContext:
String cacheControlHeader = CacheControlInstrumentation.cacheControlContext(context);
See https://www.apollographql.com/docs/apollo-server/performance/caching/ and the original implementation at https://github.com/apollographql/apollo-server/blob/main/packages/apollo-server-core/src/plugin/cacheControl/index.ts
-
Field Summary
Fields inherited from class graphql.execution.instrumentation.SimplePerformantInstrumentation
INSTANCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongraphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult>beginExecution(graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters parameters, graphql.execution.instrumentation.InstrumentationState state) graphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult>beginField(graphql.execution.instrumentation.parameters.InstrumentationFieldParameters parameters, graphql.execution.instrumentation.InstrumentationState state) static @Nullable StringcacheControlHeaderFromGraphQLContext(graphql.GraphQLContext context) graphql.execution.instrumentation.InstrumentationStatecreateState(graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters parameters) Methods inherited from class graphql.execution.instrumentation.SimplePerformantInstrumentation
beginExecuteOperation, beginExecuteOperation, beginExecution, beginExecutionStrategy, beginExecutionStrategy, beginField, beginFieldComplete, beginFieldComplete, beginFieldFetch, beginFieldFetch, beginFieldListComplete, beginFieldListComplete, beginParse, beginParse, beginSubscribedFieldEvent, beginSubscribedFieldEvent, beginValidation, beginValidation, createState, createStateAsync, instrumentDataFetcher, instrumentDataFetcher, instrumentDocumentAndVariables, instrumentDocumentAndVariables, instrumentExecutionContext, instrumentExecutionContext, instrumentExecutionInput, instrumentExecutionInput, instrumentExecutionResult, instrumentExecutionResult, instrumentSchema, instrumentSchema
-
Constructor Details
-
CacheControlInstrumentation
public CacheControlInstrumentation() -
CacheControlInstrumentation
public CacheControlInstrumentation(int defaultMaxAge)
-
-
Method Details
-
cacheControlHeaderFromGraphQLContext
@Nullable public static @Nullable String cacheControlHeaderFromGraphQLContext(graphql.GraphQLContext context) -
createState
public graphql.execution.instrumentation.InstrumentationState createState(graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters parameters) - Specified by:
createStatein interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
createStatein classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
beginExecution
public graphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult> beginExecution(graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters parameters, graphql.execution.instrumentation.InstrumentationState state) - Specified by:
beginExecutionin interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
beginExecutionin classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
beginField
public graphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult> beginField(graphql.execution.instrumentation.parameters.InstrumentationFieldParameters parameters, graphql.execution.instrumentation.InstrumentationState state) - Specified by:
beginFieldin interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
beginFieldin classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-