schema.graphqlsのスキーマを変更して以下のコマンドを実行するとスキーマに合わせた型 定義やResolverが呼ばれるまでの処理を自動生成してくれる go run github.com/99designs/gqlgen 詳細な手順はこちらを参照 https://gqlgen.com/getting-started/ 7 スキーマを元にコードを自動生成
* FROM users; - userResolver.Friends:ユーザー1の友達一覧を取得 👉SELECT * FROM users WHERE id IN (2, 3, 4); - userResolver.Friends:ユーザー2の友達一覧を取得 👉SELECT * FROM users WHERE id IN (1); - userResolver.Friends:ユーザー3の友達一覧を取得 👉SELECT * FROM users WHERE id IN (1, 6); - userResolver.Friends:ユーザー4の友達一覧を取得 👉SELECT * FROM users WHERE id IN (1, 8); ︙ こうなる GraphQLでよく課題となるN+1問題がこれ
* FROM users WHERE id IN (2, 3, 4); - userResolver.Friends:ユーザー2の友達一覧を取得 👉SELECT * FROM users WHERE id IN (1); - userResolver.Friends:ユーザー3の友達一覧を取得 👉SELECT * FROM users WHERE id IN (1, 6); - userResolver.Friends:ユーザー4の友達一覧を取得 👉SELECT * FROM users WHERE id IN (1, 8); - userResolver.Friends:ユーザー1,2,3,4,...の友達一覧を取得 👉SELECT * FROM users WHERE id IN (2, 3, 4, 1, 6, 8); 11 N+1問題の解決策① 詳しくはこちら https://gqlgen.com/reference/dataloaders/