gqlgenでgraphql schemaのファイルを分割する
何か新しいことをやってみようとGraphQLの勉強をし始めていて、まずは手慣れている言語で触ってみようということでgolangのgqlgenを触ってみています。
gqlgen自体はドキュメントも豊富なので軽く触ってみている分にはお手軽なのですが、一つのファイルに全て書くのは嫌だなと思って色々調べてみたところ普通に分割できたのでご紹介。
そもそもschemaの分割自体はgqlgenのドキュメントにも明示的に書かれていて、以下のようにgqlgen.ymlを修正します。
schema: - schema.graphql - user.graphql
そして分割された側のschemaでQueryとMutationをextend(subscriptionはまだ触ってないのでよく分からん)すればgqlgen側でよしなにやってくれます。
// user graphql extend type Query { // ... } extend type Mutation { // ... }
ただそうなると大本になるQueryとMutationはどうやって定義したらいいのだろうと思っていたら、空のままで書くだけでも問題ないようでした。
なので以下のように書いて設定ファイル側で両方読み込むようにしてやれば一応は色々生成できました。
schema.graphql
type Query type Mutation
user.graphql
extend type Query { // ... } extend type Mutation { // ... }
まとめ
意外と簡単にschema分けられたのでだいぶ楽でした。GraphQL自体はまだほとんど触れられてないのでもう少し色々試してみようかと思います。あとフロントも。