您好我是GraphQL的新手。
我想将现有端点迁移到GraphQL端点(Java)。
为了继续使用端点的应用程序逻辑,我需要HttpServletRequest
对象。
如何在突变功能中访问HttpServletRequest
对象?
我尝试将其作为参数传递,但我必须声明HttpServetRequest
类型。
有没有办法在变异中访问上述对象? 有没有办法声明外部库的类型?
谢谢。
答案 0 :(得分:0)
这通常使用共享上下文完成。执行操作时,您可以通过Datafetcher
传递所有DataFetchingEnvironment#getContext
s(解析器)都可以访问的任意对象。
E.g。
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();
这也是执行授权的常用方法:通过上下文传递用户对象。