gpt4 book ai didi

graphql - 热巧克力中的 ScopedContextData VS LocalContextData VS ContextData

转载 作者:行者123 更新时间:2023-12-05 03:45:15 26 4
gpt4 key购买 nike

在热巧克力中,ScopedContextDataLocalContextDataContextData 之间有什么区别?

最佳答案

上下文数据:

这是全局上下文数据。此请求中的所有解析器都可以访问此数据。

你可以设置它:

 services.AddGraphQLServer()
.SetContextData("foo", "bar");

如果您需要访问 HTTP 上下文:

 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:

可用于此解析器的整个子树这是一个不可变的,可以通过上下文在解析器或中间件中修改:

context.ScopedContextData = context.ScopedContextData.SetItem("foo","bar");

LocalContextData:

仅在解析器管道内可用。这可用于中间件之间的通信。这是一个不可变的,可以通过上下文在解析器或中间件中修改:

context.LocalContextData = context.LocalContextData.SetItem("foo","bar");

关于graphql - 热巧克力中的 ScopedContextData VS LocalContextData VS ContextData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65904703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com