皆さんこんにちは。株式会社バベルでエンジニアをしている uhyo です。バベルが提供しているaileadというプロダクトではフロントエンドとバックエンドの通信にGraphQLが使用されています。 実は、当初のaileadにおけるGraphQLの使い方は望ましいものではありませんでした。そこで、筆者はGraphQLの使い方を改善し、最終的に他では類を見ないくらい型安全にGraphQLを利用する仕組みを構築しました。この記事では、従来のGraphQLの使い方がどのように良くなかったのかを紹介し、それを克服するために行ったことを解説します。 GraphQLの良くない使い方 まず、従来の良くないGraphQLの使い方を例を挙げて紹介します。ただし、以降に出てくるコードは例であって実際のサービスで使われているものではありません。その点はご了承ください。 例えば、自分の組織の中のユーザーを全部取得でき