タグ付けされた質問 「graphql」

10
GraphQLとマイクロサービスアーキテクチャ
マイクロサービスアーキテクチャ内でGraphQLを使用するのに最適な場所を理解しようとしています。 APIゲートウェイとして機能する1つのGraphQLスキーマのみを使用して、リクエストされたマイクロサービスにリクエストをプロキシし、そのレスポンスを強制することについては、いくつかの議論があります。マイクロサービスは依然として通信の考え方にREST / Thriftプロトコルを使用します。 代わりに、マイクロサービスごとに1つずつ、複数のGraphQLスキーマを使用する方法もあります。リクエストのすべての情報とGraphQLクエリを使用して、リクエストをターゲットのマイクロサービスにルーティングする小さなAPIゲートウェイサーバーを用意します。 最初のアプローチ 1つのGraphQLスキーマをAPIゲートウェイとして使用すると、マイクロサービスコントラクトの入出力を変更するたびに、それに応じてAPIゲートウェイ側でGraphQLスキーマを変更する必要があるという欠点があります。 2番目のアプローチ マイクロサービスごとに複数のGraphQLスキーマを使用する場合、GraphQLがスキーマ定義を適用し、コンシューマーはマイクロサービスから提供される入出力を尊重する必要があるため、ある意味で理にかなっています。 ご質問 GraphQLがマイクロサービスアーキテクチャの設計に適しているかどうか。 GraphQLを実装できるAPIゲートウェイをどのように設計しますか?

6
FalcorとGraphQLの違いは何ですか?
GraphQLは、型システム、クエリ言語と実行セマンティクス、静的検証、および型イントロスペクションで構成されています。これらの各コンポーネントについて説明するために、GraphQLのさまざまな部分を説明するために設計された例を作成しました。 - https://github.com/facebook/graphql Falcorでは、すべてのリモートデータソースを仮想JSONグラフを介して単一のドメインモデルとして表すことができます。クライアントのメモリ内にあるか、サーバー上のネットワーク上にあるかに関係なく、データがどこにあっても同じ方法でコーディングします。 - http://netflix.github.io/falcor/ FalcorとGraphQL(Relayのコンテキスト)の違いは何ですか?
163 graphql  relayjs  falcor 

6
長いクエリを作成せずにすべてのGraphQLタイプのフィールドをクエリする方法は?
GraphQLタイプがあり、多くのフィールドが含まれているとします。すべてのフィールドの名前を含む長いクエリを書き留めずにすべてのフィールドをクエリする方法は? たとえば、次のフィールドがある場合: public function fields() { return [ 'id' => [ 'type' => Type::nonNull(Type::string()), 'description' => 'The id of the user' ], 'username' => [ 'type' => Type::string(), 'description' => 'The email of user' ], 'count' => [ 'type' => Type::int(), 'description' => 'login count for the user' ] ]; …

6
GraphQLに不利な点はありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 12か月前に閉鎖。 この質問を改善する GraphQLに関するすべての記事で、その素晴らしさがわかりますが、欠点や欠点はありますか?ありがとうございました。

1
GraphQLで「エッジ」と「ノード」の意味は何ですか?
特定のGraphQLエンドポイントを使用していますが、クエリとしてクリーンなJSON構造を提供していますが、結果を取得すると、「エッジ」タグと「ノード」タグが表示されます。それはあたかもそれが私のデータを汚染しているように見え、明らかな利点はありません。なぜそこにあり、それらを取り除いてデータの解析をより速く、より簡単にすることは可能ですか?
100 graphql 

2
GraphQLの入力タイプのポイントは何ですか?
ミューテーションの入力引数がオブジェクトの場合、入力型にする必要がある理由を説明してください。IDを指定せずにタイプを再利用する方がはるかに簡単だと思います。 例えば: type Sample { id: String name: String } input SampleInput { name: String } type RootMutation { addSample(sample: Sample): Sample # <-- instead of it should be addSample(sample: SampleInput): Sample } 小さなオブジェクトでも問題ありませんが、スキーマに10以上のプロパティを持つオブジェクトがたくさんある場合は、負担になります。
83 graphql 

1
react-apollo useMutationフックによるエラーの処理
私はこの問題を回避しようと努力してきましたが、それに対する強力な答えは見つかりませんでした。useMutationフックを使用してログインミューテーションを実行しようとしています。 TLDR; オプションで渡されたonErrorとuseMutationによって私に与えられたエラーの違いは何ですか? これが私のコードスニペットです const [login, { data, loading, error }] = useMutation(LOGIN_QUERY, { variables: { email, password }, onError(err) { console.log(err); }, }); サーバー側では、ログインに使用するプリセット/ハードコードされたメールを使用していますが、Apolloや他のクライアントを使用していません。このログイン変異のリゾルバーでは、メールが同じでない場合はエラーをスローします throw new Error('Invalid Email'); クライアント側(React)でこのエラーを処理したいと思います。しかし、私の懸念は、useMutationフックから返された「エラー」を使用し、この方法でエラーを表示しようとすると、 render() { ... {error && <div> Error occured </div>} ... } エラーはUIで更新されますが、すぐにReactに未処理の拒否(エラー)の画面が表示されます。Graphqlエラー:My-custom-error-message しかし、useMutate関数にオプションで渡されたonErrorを使用すると、この画面は表示されず、エラーに対して何でも実行できます。 オプションで渡されたonErrorとuseMutationによって与えられたエラーの違いは何なのか、そしてonErrorが使用されていないときにReactがエラー画面を表示する理由を知りたいのですが。 ありがとう!

1
複数形のテーブルとヘビのケースの列に関してレール構成をオーバーライドする方法
したがって、私は、Railsで記述されたバックエンドと、Amplifyを使用してVueで記述されたクライアントがあるアプリを構築しています。私のデータベースはMySQLであり、データソースとしてGraphQLを使用してAWS AppSyncを使用しています(データベースをポイントしています)。 AWS Amplifyには、テーブル名と列に基づいて1つの簡単なコマンドでスキーマを生成できるフレームワークがありますamplify api add-graphql-datasource。しかし、私はRailsマイグレーションを使用しているので、私のデータベースはRailsの規則を使用しています。 ここでの問題は、GraphQLスキーマがすべて醜く、正しい規則を使用していないことです(キャメルケースのプロップを使用した、タイプと入力の単一名)。例: 私のバックエンドには次の移行があります: class CreatePosts < ActiveRecord::Migration[6.0] def change create_table :posts do |t| t.belongs_to :site, null: false t.string :title t.string :url t.text :body t.timestamps end end end このために生成されるスキーマは次のとおりです。 type posts { id: Int! site_id: Int! title: String url: String body: String created_at: AWSDateTime! updated_at: AWSDateTime! …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.