布団の中にいたい

Elasticsearchいじったり、Androidアプリ書いたり。最近は数学の勉強が楽しくなってきました。

gqlgenでgraphql schemaのファイルを分割する

何か新しいことをやってみようとGraphQLの勉強をし始めていて、まずは手慣れている言語で触ってみようということでgolangのgqlgenを触ってみています。

gqlgen自体はドキュメントも豊富なので軽く触ってみている分にはお手軽なのですが、一つのファイルに全て書くのは嫌だなと思って色々調べてみたところ普通に分割できたのでご紹介。

そもそもschemaの分割自体はgqlgenのドキュメントにも明示的に書かれていて、以下のようにgqlgen.ymlを修正します。

gqlgen.com

schema:
- schema.graphql
- user.graphql

そして分割された側のschemaでQueryとMutationをextend(subscriptionはまだ触ってないのでよく分からん)すればgqlgen側でよしなにやってくれます。

// user graphql

extend type Query {
 // ...
}


extend type Mutation {
 // ...
}

ただそうなると大本になるQueryとMutationはどうやって定義したらいいのだろうと思っていたら、空のままで書くだけでも問題ないようでした。

github.com

なので以下のように書いて設定ファイル側で両方読み込むようにしてやれば一応は色々生成できました。

schema.graphql

type Query

type Mutation

user.graphql

extend type Query {
// ...
}

extend type Mutation {
// ...
}

まとめ

意外と簡単にschema分けられたのでだいぶ楽でした。GraphQL自体はまだほとんど触れられてないのでもう少し色々試してみようかと思います。あとフロントも。