https://zenn.dev/sonatard/articles/ca764e39c6d257

はじめに

Appify Technologiesでは以下のGraphQLの静的解析ツールをGoで実装しました。

忘れないうちにGraphQLの静的解析ツールの実装方法をまとめておこうと思います。

前提知識

Goの .go ファイルの静的解析ツールの作成にはanalysis を利用しますが、GraphQLファイルの静的解析ツールの作成にはgqlgo/gqlanalysis を利用します。

gqlgo/gqlanalysisは弊社の副業で@tenntennさんに作って頂いたライブラリ[1]で、Goのanalysisと同等な使用感で静的解析ツールの実装とテストを行うことができます。

gqlgo/gqlanalysisは、内部でvektah/gqlparserを利用してGraphQLファイルをパースします。gqlparserは99designs/gqlgenが利用しているライブラリです。

GrahpQLの静的解析ツールの開発

開発の基盤となるソースコードの準備

gqlskeleton は、GraphQLの静的解析開発の基盤となるソースコードを生成してくれるツールです。 インストールして基盤となるソースコードを生成します。

$ go install github.com/gqlgo/gqlanalysis/cmd/gqlskeleton@latest

以下の 自分のorg を変更して実行する。