嗨,我是 GraphQL 的新手。
我想将现有端点迁移到 GraphQL 端点 (Java)。为了继续执行端点的应用程序逻辑,我需要该HttpServletRequest
对象。
如何访问HttpServletRequest
突变函数中的对象?我尝试将它作为参数传递,但我必须声明一个HttpServetRequest
类型。
有没有办法在突变中访问上述对象?有没有办法声明外部库的类型?
谢谢你。
嗨,我是 GraphQL 的新手。
我想将现有端点迁移到 GraphQL 端点 (Java)。为了继续执行端点的应用程序逻辑,我需要该HttpServletRequest
对象。
如何访问HttpServletRequest
突变函数中的对象?我尝试将它作为参数传递,但我必须声明一个HttpServetRequest
类型。
有没有办法在突变中访问上述对象?有没有办法声明外部库的类型?
谢谢你。
这通常使用共享上下文来完成。执行操作时,您可以传递一个任意对象,所有Datafetcher
s(解析器)都可以通过DataFetchingEnvironment#getContext
.
例如
graphQL.execute(ExecutionInput.newExecutionInput()
.query(operation)
.context(servletRequest) //this is where you pass any object you need
.build());
对于较旧的 graphql-java 版本:
graphQL.execute(query, context);
稍后在DataFetcher
您的查询/突变中:
HttpServletRequest request = environment.getContext();
这也是执行授权的常用方法:通过上下文传入用户对象。