🙄
gqlgenの Getting Started でカスタムモデルが作れない問題を解決
対象者
gqlgenの Getting Started を試してる人。
Getting StartedのDon’t eagerly fetch the userが上手くいかない人
どんな問題が起きたか
チュートリアルに書いてある通り、graph/model/todo.goを作成し、コードをコピペする。
go run github.com/99designs/gqlgen generate
を実行するが、以下のエラーが出る。
validation failed: packages.Load: [省略]/graph/model/todo.go:3:6: Todo redeclared in this block
[省略]/graph/model/models_gen.go:10:6: other declaration of Todo
期待値
graph/schema.resolvers.go
に以下のメソッドが自動生成されること。
func (r *todoResolver) User(ctx context.Context, obj *model.Todo) (*model.User, error) {
//
}
解決方法
gqlgen.yml
のautobind:
以下のパッケージ名のコメントアウトを解除する。
# gqlgen will search for any type names in the schema in these go packages
# if they match it will use them, otherwise it will generate them.
autobind:
- "github.com/[module_name]/graph/model" # ⇦コメントアウトされてるので解除したげる!
go run github.com/99designs/gqlgen
のコマンドを実行
graph/schema.resolvers.go
を見ると。。。
func (r *todoResolver) User(ctx context.Context, obj *model.Todo) (*model.User, error) {
panic(fmt.Errorf("not implemented"))
}
できてる〜!
以上。
Discussion