問題タブ [graphql-tools]

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 投票する
3 に答える
2157 参照

graphql - クエリのイントロスペクションを制限する方法

apollo-server を利用した node.js プロジェクトがあります。@adminクエリ、ミューテーション、オブジェクト フィールドの権限チェックを行うカスタム ディレクティブを使用します。クエリとミューテーションの場合、このディレクティブはエラーをスローし、フィールドの場合は実際の値ではなく null を返します。

ここで、graphiql ui をプロジェクトに追加して、仲間の開発者が私の graphql スキーマを探索できるようにします。@adminただし、匿名ユーザーが見るようにスキーマを見てもらいたいです。つまり、フィールドと@adminクエリの存在とすべてのミューテーション (管理者以外のものも含む) を知る必要はありません。これらの操作を実行するための資格情報を持っている (つまり、管理者としてログインしている) 人でさえ、スキーマのそれらの部分を見るべきではありません。

私が理解している限り、graphiql は特別なイントロスペクション クエリを送信します。これには、スキーマとそのドキュメントを表示するフィールドが含ま__schemaれます。__type

makeExecutableSchemafromを使用して構築されたスキーマを何らかの方法で変更してgraphql-tools、目標を達成することはできますか?