What are the differences between ScopedContextData, LocalContextData, and ContextData, in Hot Chocolate?
ContextData:
This is the global context data. This data is accessible for all resolvers in this request.
You can set it with:
 services.AddGraphQLServer()
    .SetContextData("foo", "bar");
if you need access to the HTTP Context:
 services.AddGraphQLServer()
    .AddHttpRequestInterceptor<CustomInterceptor>()
    public class CustomInterceptor : DefaultHttpRequestInterceptor
    {
        public override ValueTask OnCreateAsync(
            HttpContext context,
            IRequestExecutor requestExecutor,
            IQueryRequestBuilder requestBuilder,
            CancellationToken cancellationToken)
        {
            requestBuilder.AddProperty("foo", "bar");
            return base.OnCreateAsync(context, requestExecutor, requestBuilder, cancellationToken);
        }
    }
ScopedContextData:
Is available for the whole subtree of this resolver This is a immutable that can be modified in resolvers or middlewares via the context:
context.ScopedContextData = context.ScopedContextData.SetItem("foo","bar");
LocalContextData:
Is only available inside the resolver pipeline. This can be used to communicate between middlewares.This is a immutable that can be modified in resolvers or middlewares via the context:
context.LocalContextData = context.LocalContextData.SetItem("foo","bar");
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With