apollo-server を利用した node.js プロジェクトがあります。@admin
クエリ、ミューテーション、オブジェクト フィールドの権限チェックを行うカスタム ディレクティブを使用します。クエリとミューテーションの場合、このディレクティブはエラーをスローし、フィールドの場合は実際の値ではなく null を返します。
ここで、graphiql ui をプロジェクトに追加して、仲間の開発者が私の graphql スキーマを探索できるようにします。@admin
ただし、匿名ユーザーが見るようにスキーマを見てもらいたいです。つまり、フィールドと@admin
クエリの存在とすべてのミューテーション (管理者以外のものも含む) を知る必要はありません。これらの操作を実行するための資格情報を持っている (つまり、管理者としてログインしている) 人でさえ、スキーマのそれらの部分を見るべきではありません。
私が理解している限り、graphiql は特別なイントロスペクション クエリを送信します。これには、スキーマとそのドキュメントを表示するフィールドが含ま__schema
れます。__type
makeExecutableSchema
fromを使用して構築されたスキーマを何らかの方法で変更してgraphql-tools
、目標を達成することはできますか?