2017-01-10 6 views
1

graphql-jsを使用してスキーマ内のフラグメントを定義するにはどうすればよいですか?graphql-jsを使ってどのようにフラグメントを定義しますか?

import graphql from 'graphql' 
export default new graphql.GraphQLObjectType({ 
    description: `An author`, 
    name: { 
     description: `The author's legal name.`, 
     type: GraphQLString 
    } 
    }), 
    name: `Author` 
}) 

そこでここでは型定義がGraphQLObjecTypeによって生成されます。たとえば

import graphql from 'graphql' 
/* how do I do this? 
fragment authorInfo on Author { 
    name 
} 
*/ 

は、私は希望者のタイプを定義します。フラグメントを生成する関数は何ですか?

答えて

4

Fragmentsは、フィールドをグループ化し、それらをクライアント側で再利用するために使用されます。サーバー上やスキーマの作成中に心配する必要はありません。

クライアント側コードは、サーバーからデータを照会するときにフラグメントを提供する必要があります。 GraphQL自体は、断片化したフィールドをクエリに追加して処理します。サーバー上で、すべてのオブジェクトのすべてのフィールドを指定する必要があります。

もちろん、手作業を減らすためにあなた自身のヘルパーを書くことができます。

同義語はvariablesと同じです。

+0

私はGraphiQLを使用している間、私はちょうど私のクエリとインラインフラグメントを追加するのだろうか?それが私の現在の動機です。私は ' 'クエリ{{ のx yの zの } 機能(パラメータ)を}アウトタイピングの疲れサーバーをテストしていながら、それだけでは、フラグメントものがどこかに定義されているのはいいことですすでにので、私は書くことができます: 'クエリ{ 機能(paramは){ ...もの }} '何ができるか@JosephFraley –

+0

は、希望のフラグメントを含む文字列を持つことである、クライアント - にハードコードされました側。次に、送信したすべてのクエリに追加します。 GraphQLのコアは非常に小さいので、カスタム動作が必要な場合は、いくつかのヘルパーを書く必要があります。 –

関連する問題