問題タブ [absinthe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neo4j - DSLでクエリを構築する際に、Absinthe GraphQLリゾルバーで複数のオプション引数を処理する方法は?
次のような GraphQL クエリを想像してください。
およびというラベルProject
の付いたノードを含む Neo4j グラフ。Platform
Language
オプションの引数がどれも渡されない場合、リゾルバーはグラフ内のすべてのプロジェクトのリストをフィルタリングせずに返す必要があります (将来的にはページネーションを使用する可能性があります)。いずれかまたはすべての引数が渡されると、それらは基になるクエリに適用される必要があります。つまり、特定の言語または特定のプラットフォーム用に実装されたプロジェクトを取得する必要があります。
Elixir バックエンドで Neo4j 用の Bolt.Sips ドライバーを使用しています。このドライバーは、Cypher クエリ言語をラップするための最小限の機能を提供するため、ほとんどの場合、自分でクエリを作成する必要があります。これまでのところ、2 番目の引数をまだ実装していないため、このリゾルバーの実装があります。
generic_query!/2
とはget_all_entities_of_type!/1
、Bolt.Sips クエリ実行の単なるラッパーです。
私の質問は次のとおりです。この場合、Cypher クエリを作成する最良の方法は何ですか? 実行前にクエリ文字列を作成する一連の関数を作成する必要がありますか? たぶん、GraphQLの経験が私の一般的な不足であり、このようなクエリスキーマは別の方法で構築されるのでしょうか? ヒントをいただければ幸いです。
elixir - リゾルバーなしで GraphQL フィールドを作成する
私はPhoenixとAbsintheでElixirを使用して、GraphQLバックエンドをセットアップしています。
理想的には、次のような構造にしたいと考えています。
そのためには、スキーマ内のフィールドを、およびposts
に応答するオブジェクトに委任する必要があると考えました。私はこれを次のようにしました:published
draft
これは機能せず、代わりにフィールドnull
全体を返しますposts
。ただし、posts
スキーマのフィールドを変更して「空白の」リゾルバーを含めると、期待どおりに機能しました。
これはベスト プラクティスですか、それともオブジェクトに完全にデリゲートするようにフィールドに指示するより良い方法はありますか? より一般的には、これを構造化するためのより良い方法はありますか?