問題タブ [graphql]
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.
reactjs - Passing arguments to top level fields from within a Relay container
Assume I have a field called country
defined at the top level of my GraphQL schema. I can query it in the following way:
In my relay container I can specify the attributes that I would like returned with a fragment on Country
:
How can I change the value of the alpha2
argument from within my react component? I could nest the country
field under some arbitrary field and declare my relay fragment on the parent but would rather avoid unnecessarily modifying my graph if possible.
immutable.js - Relay-GraphQL ミューテーションを使用した状態トラバーサルの取り消しとやり直しのパターン
Immutable と Flux の実装を使用して元に戻す/やり直し機能を実現することは、基本的に簡単です。これは、一部は Immutable によって可能になった値の受け渡しによるものであり、一部は Flux を使用することのブラウザー内/メモリ内の性質によるものです。
ただし、Relay-GraphQL ミューテーションの観点からこれを概念化することは明らかではありません。これを単純化する既知のパターンはありますか?
javascript - Relayによる認証とアクセス制御
Facebook の公式見解は、Relay は「意図的に認証メカニズムにとらわれない」というものです。Relay リポジトリのすべての例では、認証とアクセス制御は別の問題です。実際には、この分離を実装する簡単な方法は見つかりませんでした。
viewer
Relay リポジトリで提供されている例にはすべて、ユーザーが 1 人であることを前提としたフィールドを持つルート スキーマがあります。そして、そのユーザーはすべてにアクセスできます。
ただし、実際には、アプリケーションには多くのユーザーがいて、各ユーザーは各ノードへのアクセス レベルが異なります。
JavaScript に次のスキーマがあるとします。
一部のユーザーは、クエリを実行するユーザーの観点から完全に非公開です。他のユーザーは、特定のフィールドのみを照会ユーザーに公開する場合があります。そのため、ユーザーを取得するには、クライアントはクエリ対象のユーザー ID を提供するだけでなく、アクセス制御が行われるように自分自身を識別する必要もあります。
これは、アクセスを制御する必要性がグラフを少しずつ下るにつれて、すぐに複雑になるようです。
さらに、ルート クエリごとにアクセスを制御する必要がありますnodeField
。すべてのノードが を実装していることを確認する必要がありますnodeInterface
。
これらはすべて、多くの反復作業のように思えます。これを単純化するための既知のパターンはありますか? 私はこれについて間違って考えていますか?
graphql - Relayによるユーザー入力の検証
一見すると、Relay で検証を行う最善の方法は、スキーマでカスタム GraphQL スカラー型を使用することです。そうですか?
rest - ネストされたリソースの GraphQL ミューテーション
ミューテーションは、データを操作するためのクエリです。もしそうなら、私root query
とroot mutation
木は似ているはずですよね?どちらもネストされたフィールド (ネストされたミューテーション) を許可する必要があります。私はこれで(を使用して)遊んでいましたがexpress-graphql
、動作します。
例:
これは有効な例ですか?ミューテーションはこのように入れ子にするべきですか? いいえの場合、ネストされたリソースをどのように処理すればよいですか? ネストされたリソースを変更する実際の例は見つかりません。すべての例は、最初のレベル (ルート ミューテーションのフィールド) でのみミューテーションを定義します。
reactjs - RelayMutations の Flux アクションを起動する方法
つまり、ローカル状態 (ModalStore、HistoryStore などのフラックス ストア) をリレー ミューテーションで更新する方法を教えてください。私が見つけた唯一の解決策は、コールバックを使用してフラックス アクションを起動することです。ただし、ミューテーションが使用されるたびにアクションを起動する必要があり、そのコードはミューテーション ペイロードの形状に依存するため、これは非常に冗長で危険になります。私が気付いていないより良い解決策があると感じています。
graphql - Graphql + リレー graphql-relay-js の依存関係
すべての例で、サーバー上
で graphql-relay-js を使用しています
あるクライアントがgraphql apiのみを使用し、別のクライアントがリレーを使用してデータを取得する場合の状況それを処理する方法は?
graphql - `RANGE_ADD`ミューテータ設定の`rangeBehaviors`属性の「GraphQL呼び出し」とは何ですか?
ドキュメント では次のように説明さrangeBehaviors
れています。
GraphQL 呼び出しのマップは、これらの呼び出しの影響下で接続に新しいエッジを追加するときに Relay に表示させたい動作です。動作は、「追加」、「追加」、または「削除」のいずれかです。
ドキュメントの例は次のとおりです。
todos サンプル リポジトリの別の例では、次のようなものがあります。
この場合の「GraphQL 呼び出し」とは何ですか? そのような呼びかけの「影響下にある」とはどういう意味ですか?