GraphQLでのデータの並び替え引数をもたせる時の作り方
GraphQLでのデータの並び替え引数をもたせる時の作り方
先日GraphQLでの並び替えをリクエストで受け付けられるようにする必要がありました。
その際、GitHubのAPIを参考に実装しましたので、その説明をしたいと思います。
バックエンドは Rails + graphql-ruby です
そもそも何がうれしいの?
この方法で実装するメリットを挙げていきます。
- 受け付けられる値を指定できるので、Rails側でチェックする処理を自分で書く必要がなくなる
- 「D」だけでリクエストした場合、GraphQLのところで validation してくれます。
- 「D」だけでリクエストした場合、GraphQLのところで validation してくれます。
- GraphiQLが使いやすくなる
- 補完がきく
- ドキュメンテーション化が進む
- String 型だと何が入力/受付可能なのかわからない(もしくはコメントで書く必要がある)のが、わかりやすくなっていますね!
- 補完がきく
作り方
以下の3つを作ります
- SQLでいう
order by
をまとめる InputObject
- 並び替えをするカラムを指定する Enum
- 並び替えをする方向を指定する Enum
query は以下のように実装しました。(簡略化しています)
おわりに
ざっと説明しましたが、みなさんのGraphQLでの実装の参考になれば幸いです。
これからもみなさんに共有できる情報があればどんどんしていきたいと思います。
それでは!