【问题标题】:GraphQL resolve mappingGraphQL 解析映射
【发布时间】:2017-07-02 19:08:31
【问题描述】:

当父源来自不同的源和不同的形状时,我在尝试编写字段解析器时遇到问题。

例如,假设我有以下架构:

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 编写有效的解析器。

你会建议做什么?

提前致谢!

【问题讨论】:

    标签: graphql


    【解决方案1】:

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

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

    我的流程一般是:

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

    【讨论】:

      猜你喜欢
      • 2017-07-18
      • 2019-05-21
      • 2020-04-05
      • 2018-09-10
      • 2016-11-11
      • 2020-06-16
      • 1970-01-01
      • 2016-02-27
      • 2016-07-03
      相关资源
      最近更新 更多