GraphQL解析映射

时间:2017-02-14 13:11:07

标签: 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.

现在,问题出在Story的作者解析器上,它返回的值是:

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

而getPersonById返回:

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

现在,我无法为Person的fullName编写一个有效的解析器,因为源中的字段名称不同。

你建议做什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您有来自不同来源的数据,我会在获得数据后立即对它们进行规范化,我保持解析器功能相对简单。

您可以轻松编写一个解析器函数来检查数据形状是什么,并相应地做正确的事情,但如果数据已经是正确的形状,那就更好了。

我的流程一般是:

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