ayumin.log

読みにくかったら脳内sedで整形してね

gqlgenがinitした瞬間エラーを出していた話

GraphQL の素振りがしたかった

SecHack365 に今年参加することが決まったため、色々技術選定をしている。

まだ決まっていないことも多いが、とりあえずフロント-バック間の通信はGraphQL使ってみるかなと思い、

github.com

を試していた。スキーマドリブンな設計してみたかった。

gqlgen init したらなぜかエラーが出る

$ gqlgen init
validation failed: packages.Load: /home/shoumoji/graphql-tutorial/graph/prelude.resolvers.go:19:44: __DirectiveResolver not exported by package generated

🤔🤔🤔

tutorial 読んだけどそんなのなかったよなぁ…? と思いつつ、prelude.resolver.go を眺めてみる。

何がおかしいんだろう…と小一時間悩んだ末、ふとサンプルリポジトリを見てみた。

github.com

そんなファイルないらしい。この辺でなんとなくおかしさに気づいたので、issues を辿ってみる。

github.com

ということで、gqlgenの依存ライブラリに互換性の問題があったらしく、そのままでは無理そうだった。

解決策

先ほどの issue にもあるが、バージョンを上げる。とりあえずHEADまで上げれば解決した。

go install github.com/99designs/gqlgen@HEAD

あとは go mod tidy したり init し直せば OK。