さまざまなフィールドを持つタイプのGraphQLスキーマを指定しようとしており、同じ引数を使用してOR: [...]
を再帰的にタックすることもできます。私はそれは素晴らしい作品。このGraphQL - スプレッド入力args
input BookFilters {
_id: String
title: String
title_contains: String
title_startsWith: String
title_endsWith: String
OR: [BookFilters]
}
type Query {
allBooks(_id: String
title: String
title_contains: String
title_startsWith: String
title_endsWith: String
OR: [BookFilters]
): [Book]
}
のように働いてんだ、このクエリ
{
allBooks(title_endsWith: "1", OR: [{ title: "2" }, {title:"3"}, {OR: [{title_contains: "Q"}, {OR:[{title:"Q"}]}]}]) {
_id
title
}
}
はうまく通過します。
私の質問は、重複を削除するいくつかの方法はありますか?理想的には、私はそれが大好きです
type Query {
allBooks(...BookFilters): [Book]
}
が有効ですが、そうではありません。
編集 - コメントが断片を持ち出しました。彼らはの型から外れてと宣言できますか?だから私はまだ私のすべてのクエリの引数をリストし、それからフラグメントを作る、すべてのフィールドを再一覧表示する新しいタイプを作るだろうか?
それでもそうでないとしても、GraphQLはまだ入力引数に広がっているようには見えません。私たちは、プレーンJSからスキーマの代わりに、クエリ言語を構築し、私たちの引数は、プレーン古いjavascriptの-オブジェクトであるため、スプレッドを使用することができます...
これは、断片のことを思い出します。これをチェックしてください:http://dev.apollodata.com/react/fragments.html – agm1984
ごめんなさい。アポロ、あなたがそれを使用している場合、バニラのドキュメントをチェックしてください。 – agm1984
ええ - 私は断片を見た。彼らはTypeで宣言されているだけですが、そうですか?それにもかかわらず、私は依然としてクエリ引数にフラグメントを広げることはできないようです。 –