2017-11-29 18 views
0

Graphqlに関する多くのチュートリアルを見てきましたが、それらはすべて異なって書かれています。私は彼らのすべての長所と短所が何であるか疑問に思っていた。また、さまざまなファイルの型やクエリなどをモジュール化するにはどうすればよいでしょうか?私が見た最初の方法は、文字列を使ってGraphQLスキーマを記述し、それをエクスポートしてからスキーマファイルにインポートする方法です。これは次のようになります。異なる種類のGraphQL構文をタイプスクリプトで使用する場合

const typeDefs = ` 
type Query { 
    testString: String 
} 
`; 

次に、express-graphqlパッケージを使用し、オブジェクトを使用してスキーマを記述する次の方法があります。これは次のようになります。

const todoType = new GraphQLObjectType({ 
    name: 'todo', 
    description: 'todo item', 
    fields:() => ({ 
    itemId: { 
     type: (GraphQLInt), 
     description: 'The id of the todo.', 
    }, 
    item: { 
     type: GraphQLString, 
     description: 'The name of the todo.', 
    }, 
    completed: { 
     type: GraphQLBoolean, 
     description: 'Completed todo? ' 
    } 
    }) 
}); 

他の方法は、graphqlファイルを使用することです。

それは単に個人的な好みですか、それとももう一方のものを使用することの本当のメリットですか?

私が言及した最初のものは構文の強調表示が不足しているかもしれないが、これは実際のgraphql構文に最も近いと思う。私の好みは、graphqlファイルを使うことです。しかし問題はそれをどのようにモジュール化するかです。いくつかの異なる.graphqlファイルを一緒にマージし、単一のスキーマ内でそれらを使用する方法はありますか?

答えて

0

スキーマファイルまたは文字列の中でクエリを定義すると、GraphQLインターフェイスを素早く試作できます。これは、開始し、いくつかのリゾルバを実装するために非常に良いです。スキーマが大きくなると、スキーマ定義も大規模になります。いくつかのタイプしかありませんが、スキーマファイルは1000以上です。このため、JavaScriptで型を定義し、リゾルバを定義の中に書き込むのはこのためです。ほとんどのリゾルバは非常に単純で、実際のタイプ解決ロジックを含むデータローダを使用します。 new tool by GraphCoolは、スキーマ定義のインポートを許可します。この種のスキルは上記の私の指摘を打ち破り、スキーマ言語を使用しながら、別のもののためにスケールすることを可能にします。

Btw:利用可能なGraphQLスキーマ定義の構文ハイライトがあります。 Atomからlanguage-babel

関連する問題