gpt4 book ai didi

java - GraphQL 在突变函数上访问 HttpRequest

转载 作者:行者123 更新时间:2023-11-30 10:19:09 26 4
gpt4 key购买 nike

大家好,我是 GraphQL 的新手。

我想将现有端点迁移到 GraphQL 端点 (Java)。为了继续端点的应用程序逻辑,我需要 HttpServletRequest 对象。

我怎样才能访问变异函数中的 HttpServletRequest 对象?我尝试将它作为参数传递,但我必须声明一个 HttpServetRequest 类型。

有没有办法在突变中访问上述对象?有没有办法声明外部库的类型?

谢谢。

最佳答案

这通常是使用共享上下文完成的。执行操作时,您可以通过 DataFetchingEnvironment#getContext 传递所有 Datafetcher(解析器)都可以访问的任意对象。

例如

GraphQLContext sharedContext = GraphQLContext.newContext()
//this is where you pass any object you need
//use other factory methods as needed
.of(HttpServletRequest.class, servletRequest)
.build();

graphQL.execute(ExecutionInput.newExecutionInput()
.query(operation)
.context(sharedContext)
.build());

对于旧的 graphql-java 版本:

graphQL.execute(query, context);

然后在您的查询/变更的 DataFetcher 中:

HttpServletRequest request = environment.getGraphQlContext().get(HttpServletRequest.class);

这也是执行授权的常用方式:您通过上下文传入用户对象。

关于java - GraphQL 在突变函数上访问 HttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48804590/

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