2016-10-08 6 views
2

GraphQL突然変異のためのビューアを持っていることをお勧めしますか?理論的には、ログインしていないといくつかの突然変異のエンドポイントは可能ではないはずです。変異のGraphQLビューア

私はウェブ上の例を見ると、クエリ用のGraphQLビューアの実装しか見ることができません。突然変異については、私は視聴者の実装を見ません。たとえば、GitHub APIには、すべての突然変異の上にビューアがありません。

答えて

8

viewerフィールドは、突然変異または照会のいずれの場合でも良い方法ではありません。これはオープンソース化される前の、Facebookの旧式のGraphQLプラットフォームの残ったもので、ルートクエリフィールドの引数を許可していない。これは、すべてのフィールドが1レベル下に移動し、viewer以下に移動する必要があることを意味しました。ここに述べたように

GraphQLで認証を行うには、現在の方法は、少なくともJavaScriptの実装では、HTTPヘッダのようなものに基づいてユーザデータを取得し、contextの上に置くことである:http://graphql.org/learn/authorization/

ため、突然変異や検索のためのビューアを行う理由はありません。ほとんどのGraphQLクライアントは気にしませんが、Facebookの従来のGraphQL制限の一部を継承しているRelay 0.xを使用している場合は、特にクエリに含めることができます。うまくいけば、Relayの将来のバージョンでは、この要件が削除されます。

追加ソースについては、GraphQLのオリジナルクリエイターの1人であるLee Byronのthis commentをお読みください。

+0

「視聴者」を使用することは悪い習慣であることに私は同意しません。最近の多くのアプリでは、多くのデータがこのデータを表示しているユーザーのコンテキストに密接に関連しています。例えば。私のFacebookの友達はあなたとは違っています。そのような場合、サブクエリのスコープを適切に制限するルートビューアフィールドを持つと便利です。検索などのようなことは、しばしば誰が検索しているのかのコンテキストに結びついています。 Relayは、ビューアのコンセプトが伝統的な理由のためだけに存在すると言っているリソースをいくつか用意してください。 – pie6k

+0

最近のGraphQLのリリースには、現在のユーザに関する情報を得ることができる根本的なものである「コンテキスト」という概念があります。したがって、それを実際のスキーマのフィールドにする必要はありません。 – stubailo

+0

ここに、GraphQLの作成者であるLee Byronからのコメントがあります:https://github.com/lucasbento/graphql-pokemon/issues/1#issue-184547046 – stubailo

関連する問題