GraphQL访问HttpRequest对变异函数的访问

时间:2018-02-15 10:10:29

标签: java graphql graphql-java

您好我是GraphQL的新手。

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

如何在突变功能中访问HttpServletRequest对象? 我尝试将其作为参数传递,但我必须声明HttpServetRequest类型。

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

谢谢。

1 个答案:

答案 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();

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