問題タブ [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.

0 投票する
1 に答える
2692 参照

laravel - Relay/GraphQL のどこに CSRF トークンを配置しますか?

Laravel サーバーで Relay と GraphQL をセットアップしようとしています。GraphQL を提供するように Laravel を正常にセットアップしました。

過去に、jQuery で ajax 呼び出しを行うために、master.blade.php に以下を追加しました。

そして、私のmain.jsファイルに以下を追加します:

私の GraphQL エンドポイントは現在、トークンの不一致例外を返しています。リレーは、jQuery.ajax と同様の方法で csrf-token をサーバーに渡す必要があるように思えます。それはどこに行くのですか?

0 投票する
2 に答える
7372 参照

graphql - GraphQL ミューテーション変数

GraphiQL インターフェイスで GraphQL を使用して単純な突然変異を実行しようとしています。私の突然変異は次のようになります:

変数を使用:

しかし、それは私にエラーを与えます:Variable $name of type "String" used in position expecting type "String!"

突然変異をに変更するmutation M($name: String = "default")と、期待どおりに機能します。これは型システムに関連しているように見えますが、何が問題なのかわかりません。

0 投票する
1 に答える
226 参照

reactjs - 整数クエリパラメーターを使用したRelayJS不変違反

私はリレーに比較的慣れていないので、これは私が犯した簡単な間違いかもしれませんが、すでにしばらく探していましたが、私が抱えている問題に関する情報は見つかりませんでした.

これは、アプリケーションから得られるエラーです。

キャッチされないエラー: 不変違反: GraphQLFragmentPointer:storyクエリの引数の値Routeは文字列である必要がありますが、に設定されていました10。値が文字列であることを確認してください。

問題は、実際には文字列にしたいの10ですが、文字列にしたくないということです。設定が間違っていませんか?

これは私のGraphQLスキーマです:

これは私が定義したリレー ルートです。

そして、これが私がそれをインスタンス化する方法です:

0 投票する
1 に答える
2036 参照

node.js - GraphQL を使用してデータベースから限定レコード (ページネーション) を取得する方法

最近、GraphQL を使い始めました。データベースからすべてのレコードを取得できますが、取得できるレコードは限られています (一度に 10 件など)。これを達成するために私を導いてください。ありがとう

0 投票する
1 に答える
1256 参照

reactjs - GraphQL での双方向フェッチ

次の GraphQL スキーマがあります。

基本的に、すべてのユーザーはタスクのリストを持つことができます。この問題は、次のような応答を得るためにすべてのタスクのリストをフェッチする必要があるときに発生します。

そのようなフェッチを許可するには、スキーマをどのように編集すればよいですか?

0 投票する
1 に答える
116 参照

mongodb - GraphQL でカスタム メッセージを出力する方法

こんにちは、es6 の組み合わせで GraphQl を使用しています。Graphql から特定のレコードを削除しているときに、削除されたレコードの詳細 (値) を取得しています。「レコードが削除されました」などのカスタム メッセージを出力したいと考えています。それに応じて私を助けてください。

ここに私のgraphQLコードがあります:

0 投票する
0 に答える
406 参照

reactjs - ファット クエリとツリー構造について

Relay のファット クエリの概念を理解するのにまだ苦労しています。特に、どのデータを再フェッチするかを決定する交差ロジックの部分についてです。

これまで、UserTypeルート クエリ ( という名前)viewerを使用して単純な階層データ構造を構築してきました。この各プロジェクトには、任意にネストされたサブプロジェクト階層をモデル化する別のフィールド (タイプも) があります。projectsProjectConnectionTypeprojectsProjectConnectionType

また、2 つの高次の React コンポーネントがProjectListあり、条件付きでフラグメントを展開することによって (リスト アイテム コンポーネント内でProjectListItemRelay 変数を使用することによって)、この構造をレンダリングします。expanded

これまでのところ、これはうまく機能しており、非常に満足しています。トリッキーな部分は、AddProject突然変異です。名前とparentProjectId入力として (ルート プロジェクトの場合は null の可能性があります) を受け取り、サーバー側の適切な場所に新しいノードを作成するミューテーションを作成しました。その後、新しいもの (後でprojectEdges使用して追加されます) とorを返す必要があるため、そこでも更新できます。RANGE_ADDparentProjectviewersubprojectCount

ビューア (一意のグローバル ルート クエリ ポイント) の場合、すべて正常に動作します。Relayは交差点を正しく計算し、サーバーから新しいデータを要求します。しかし、サブプロジェクトを追加しようとすると、(ミューテーション ID 以外に) 出力フィールドのない完全に空の応答が返されます。私の推測では、Relay はparentProjectフィールドを適切にマッピングする方法を知らないために交差点を間違えているようです。私はすでにそのための構成を追加しようとしましたが、ファットFIELDS_CHANGEクエリparentProject: node(id: "$parentProjectId")内でクエリを実行しようとしました(どちらも機能していませんでした)。

私は何が欠けていますか?ドキュメントを数回読んだことがありますが、まだミューテーションの概念を理解しておらず、すでにかなりばかげていると感じています。

0 投票する
2 に答える
3503 参照

reactjs - Relay + React のテスト戦略

最近、React + Relay + Graphql を試しています。残念ながら、リレー コンテナーでラップされた React コンポーネントをテストする簡単で便利な方法が見つかりません。

基本的には、TDDに沿ってこれらの目標を達成したいと考えています。

  1. コンテナをレンダリングしてその内容をテストします。
  2. 変数を変更し、コンテンツでその変更をテストします。

React + Flux と比較すると、React + Relay はブラック ボックス、つまり宣言型に似ています。

Relay.createContainer をモックして Relay をバイパスし、単に React コンポーネントをテストするだけの人がいます。リレー部分が覆われておらず、テストによってこの部分 を駆動する方法はありません。https://github.com/facebook/relay/issues/161

また、Relay のテスト ケースを読み、モック コンテナーをレンダリングするのは非常に面倒です。 https://github.com/facebook/relay/blob/master/src/tools/mocks/RelayTestUtils.js _ _

解決策を共有できれば、本当に感謝しています。

ありがとう!

0 投票する
1 に答える
1385 参照

reactjs - クライアント側でのみ JS を中継する

laravelを使用してgraphqlサーバーを開発しました(https://github.com/Folkloreatelier/laravel-graphql)。Relayを使用してReactアプリケーションを作成したいと思います。最初のコンポーネントを作成すると、「Uncaught Error: Invariant Violation: RelayQL: Unexpected invocation at runtime.」というエラーが表示されます。Babel 変換が設定されていないか、この呼び出しサイトを識別できませんでした。として逐語的に使用されていることを確認してくださいRelay.QL

私はまだエラーをグーグルで検索し、Babel Relay Plugin をインストールする必要があることを認識しました。しかし、このプラグインを含めるには、スキーマを指定する必要があります。しかし、私はまだサーバー側でこのスキーマを指定しています。なぜクライアント側でもこれが必要なのですか? サーバーがまだ実装されている場合にこれを実装する方法の例はありますか (外部サーバー、NodeJS サーバーなど)。

アドバイスありがとうございます。

0 投票する
1 に答える
2188 参照

graphql - Relayjs Graphql ユーザー認証

リレーと反応と組み合わせてgraphqlサーバーのみを介して、異なる役割を持つユーザーを認証することは可能ですか?

私は周りを見回しましたが、このトピックに関する多くの情報を見つけることができませんでした.

私の現在の設定では、さまざまな役割を持つログイン機能は、依然として従来の REST API を使用しています... (json Web トークンで「保護」されています)。