2017-02-14 140 views
0

我有一个问题,试图编写一个字段解析器,当父源来自不同的来源和不同的形状。GraphQL解析映射

例如,假设我有以下模式:

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. 

现在的问题是故事的作者解析器,它返回的值是:

{ id: 1, first_name: "Jack" last_name: "Hugh" } 

而getPersonById返回:

{ id: 1, firstName: "Jack", lastName: "Hugh" } 

现在,我无法为Person的fullName写一个工作的解析器作为第源中的字段名称不同。

你会建议做什么?

在此先感谢!

回答

0

如果你有来自不同来源的数据,我会尽快将它们归一化,我的解析器功能相对简单。

你可以很容易地编写一个解析器函数来检查数据形状是什么,并相应地做正确的事情,但是如果数据已经处于正确的形状,它会更好。

我的过程一般是:

DB/Service Query -> Transform/Normalize Data -> GraphQL type (with custom resolvers only for expensive fields)