2017-02-14 3 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. 

さて、問題は物語の作者リゾルバであるが、それが返す値は次のとおりです。

はgetPersonByIdを返し
{ id: 1, first_name: "Jack" last_name: "Hugh" } 

ながら:

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

今、PersonのfullNameの作業リゾルバをthとして書くことができませんソースのフィールド名が異なっています。

あなたは何をお勧めしますか?

ありがとうございます!

答えて

0

異なるソースからのデータがある場合は、取得するとすぐにそれらを正規化するというアプローチに進みます。私は解決ツールの機能を比較的単純にしています。

データシェイプが何であるかをチェックし、適切なことを行うリゾルバ関数を簡単に書くことができますが、データがすでに正しい形になっている方が良いでしょう。

私のプロセスは、一般的に次のとおりです。

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