2017-02-14 139 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)