有没有一种方法可以向TypeDefinitionRegistry typeRegistry

时间:2019-09-26 03:05:42

标签: java graphql graphql-java

我尝试在查询类型中现有的每个字段上添加带有参数的新指令。

TypeDefinitionRegistry typeRegistry = schemaParser.parse(schema);
Map<String, TypeDefinition> operationList = typeRegistry.types();

if(entry.getValue().getName().equals("Query")){
for (Map.Entry<String, TypeDefinition> entry : operationList.entrySet()){
FieldDefinition field : ((ObjectTypeDefinition) entry.getValue()).getFieldDefinitions()
}
}

我需要向每个字段添加带有参数集的指令,因此,我尝试了类似的逻辑,如下所示: SchemaDirectiveWiringEnvironment env参数。 以及SchemaGenarator实现graphql-java实现中的一些逻辑。但是我找不到实现此目的的方法,因为类中的所有方法似乎都是私有方法

public class UppercaseDirective implements SchemaDirectiveWiring {
  @Override
  public GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment<GraphQLFieldDefinition> env) {
    GraphQLFieldDefinition field = env.getElement();
    DataFetcher dataFetcher = DataFetcherFactories.wrapDataFetcher(field.getDataFetcher(), {
      dataFetchingEnvironment, value ->
        if (value == null) {
            return null
        }
        return  ((String) value).toUpperCase()
    })
    return field.transform({ builder -> builder.dataFetcher(dataFetcher) });
  }
}

1。有人可以解释解决此问题的正确方法吗? 2.是否可以将FieldDefinition字段转换为GraphQLFieldDefinition字段

0 个答案:

没有答案