Graphql:在解析的架构上添加默认解析器吗?

时间:2018-06-25 15:18:50

标签: graphql apollo graphql-js apollo-server graphql-tools

阿波罗makeExecutableSchema中的

graphql-tools用默认解析器填充架构,该解析器从父对象中提取道具,并调用与字段相关的解析器(如果存在)。这是GraphQL的默认行为,没关系。

但是我有一个已解析的架构,该架构无法执行。我有一堆解析器(在对象级别)。好的,我这样添加它们:

import {addResolveFunctionsToSchema} from "graphql-tools/dist/schemaGenerator";
addResolveFunctionsToSchema({schema, resolvers});

但这不会在字段上添加默认解析器。我知道它们不是必需的,并且GraphQL将默认使用通用分辨率,但是如果我使用例如将解析器包装到装饰器中的字段级指令,则字段上未定义的resolve属性会导致一些问题:

  visitFieldDefinition(field: GraphQLField) {
    field.resolve = guard(field.resolve, this.args.scopes, ()=>null);
    return field;
  }

现在有一个解析器,但回调未定义。没关系。

问题是,如何用显式默认解析器填充原始解析的架构?我试图在makeExecutableSchema来源中找到答案,但是没有运气

0 个答案:

没有答案