我尝试在查询类型中现有的每个字段上添加带有参数的新指令。
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字段