問題タブ [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.
graphql - graphql-js を使用した関連する HTTP 応答コード
これが問題です。graphql-js でエラー処理を処理する方法を理解しようとしています。(リレー無しの場合)
十分に具体的ではありません!? さて、graphql-js は解決関数内でスローされたすべてのエラーをキャッチしているため、エラーと http 応答を適切に処理する方法について少し混乱しています。
だから私はほとんどアイデアがなかったので、あなたがそれについてどう思うか知りたいです!
エラーが含まれている場合でも、graphql 応答で常に 200 OK を返します。(あれは好きじゃない)
result.errors[0] の大文字と小文字を切り替えて、エラーに関して http 応答を返します。エラーがない場合は、result.data を返します。(これは非常に長いスイッチケースになる可能性があります)
resolve 関数と throw および object でエラー処理を処理する (例:
{ httpCode: 404, msg: 'No X found with the requested id' }
)エクスプレス app.post 関数 (または任意の Web フレームワーク) では、次のようなものがあります。
/li>
エラーオブジェクトのマーシャリング方法が原因で、これは現在機能しません...または、少なくともgraphqlからそれを取得する方法をまだ見つけていません。私はおそらくgraphql-jsソースを調べようと考えていますが、明らかな何かが欠けている可能性があるので、最初に皆さんに尋ねたほうがよいと思いました.
明らかに、より良いアイデアは大歓迎です!
乾杯 :D
reactjs - Relay.js でのルート クエリの作成と削除
親ノードを持たないリレーでノードを作成および削除する方法を見つけようとしています。NODE_DELETE
/ RANGE_DELETE
and RANGE_ADD
all には親ノードが必要なようです。Relay.js のルート クエリ オブジェクトからミューテーションの作成と削除を実行する方法はありますか?
注: FIELDS_CHANGE クエリを使用して作成を実行できる例を見つけましたが、ドキュメントや理由がありません。
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 スカラー型を使用することです。そうですか?