如何在提供的 class 方法中引用 Context 对象?

How to reference Context object in provided class methods?

我们正在使用 graphql-javacom.coxautodev.graphql.tools.SchemaParser(来自 graphql-java-tools) 我们正在创建可执行模式 - 它工作得很好。现在我们需要添加用户信息并将其传播到我们的 graphql 方法逻辑。显而易见的方法是使用 "context" object.

因此,在 mutations.graphql 文件中有:

type Mutations
  createGroup(input: CreateGroupInput): IdRequest
  ...

另一方面,有一个Javaclass有相应的方法:

IdRequest createGroup(CreateGroupInput input) {
  ...
}

那么在调用graphql.GraphQL.execute(myQuery, contextObject)时如何将这个contextObject读入上面的Java方法中呢?

我要找的东西是 DataFetchingEnvironment(参见 Fetching data)。

然后可以通过添加 DataFetchingEnvironment 作为最后一个参数在 Java class 中检索 "contextObject",例如:

IdRequest createGroup(CreateGroupInput input, DataFetchingEnvironment environment) {
  Object contextObject = environment.getContext();
  ...
}