【发布时间】:2018-11-07 23:45:51
【问题描述】:
我的架构中有以下结构:
type gn_Feature implements Some_Interface {
s_description: String
s_id: URL!
some_parent: gn_Feature
}
如您所见,每个gn_Feature 都有另一个链接的gn_Feature 对象(链接在其他地方处理,这并不重要)。根据我目前的理解,您只需要为返回 types 定义解析器,因此我的解析器如下所示:
export const resolvers = Object.assign(
{},
{
DateTime: DateTime,
Date: DateTime,
Time: RegularExpression("Time", /^\d{2}:\d{2}(:\d{2})?$/),
URL,
Query: {
gn_Feature: gn_FeatureResolver
},
gn_Feature: gn_FeatureResolver
}
);
但是,如果我没有为 nested 字段明确定义解析器,我的查询将失败并出现以下错误,如下所示:
gn_Feature: {some_parent: gn_FeatureResolver}
错误:
"message": "为\"gn_Feature.s_description\"解析函数 返回未定义”
当我没有像上面那样指定嵌套对象时,我的解析器函数甚至不会被调用。 我的后端包含一些将 GraphQL 查询转换为 SparQL 查询的巫术转换,这些查询返回数据,因此我不会发布解析器代码,因为我对许多字段使用一个通用解析器。我想避免为每个嵌套字段指定解析器,因为这将非常乏味(我有几十个类型和几十个字段)。欢迎任何澄清,因为我完全感到困惑。
GraphQL 查询示例:
gn_Feature(some_field:"AD", last:2){
s_description,
s_id
some_parent{
s_description
}
}
【问题讨论】:
标签: graphql apollo apollo-server