当父源来自不同来源和不同形状时,我在尝试编写字段解析器时遇到问题。
例如,假设我有以下架构:
type Person
id : Number
fullname : String
type Story:
title : String
author : Person
Query:
getPersonById(id: Number) : Person # makes db call.
getStoryById(id: Number) : Story # gets the story somehow.
现在,问题出在Story的作者解析器上,它返回的值是:
{ id: 1, first_name: "Jack" last_name: "Hugh" }
而getPersonById返回:
{ id: 1, firstName: "Jack", lastName: "Hugh" }
现在,我无法为Person的fullName编写一个有效的解析器,因为源中的字段名称不同。
你建议做什么?
提前致谢!
答案 0 :(得分:0)
如果您有来自不同来源的数据,我会在获得数据后立即对它们进行规范化,我保持解析器功能相对简单。
您可以轻松编写一个解析器函数来检查数据形状是什么,并相应地做正确的事情,但如果数据已经是正确的形状,那就更好了。
我的流程一般是:
DB/Service Query -> Transform/Normalize Data -> GraphQL type (with custom resolvers only for expensive fields)