GraphQLでのデータの並び替え引数をもたせる時の作り方 | Dev Driven 開発・デザインチーム GraphQLでのデータの並び替え引数をもたせる時の作り方 – 働くひとと組織の健康を創る iCARE

BLOG

GraphQLでのデータの並び替え引数をもたせる時の作り方

中村一星
2020/07/03

GraphQLでのデータの並び替え引数をもたせる時の作り方

先日GraphQLでの並び替えをリクエストで受け付けられるようにする必要がありました。
その際、GitHubのAPIを参考に実装しましたので、その説明をしたいと思います。

バックエンドは Rails + graphql-ruby です

そもそも何がうれしいの?

この方法で実装するメリットを挙げていきます。

  • 受け付けられる値を指定できるので、Rails側でチェックする処理を自分で書く必要がなくなる
    • 「D」だけでリクエストした場合、GraphQLのところで validation してくれます。
      validation
  • GraphiQLが使いやすくなる
    • 補完がきく
      • completation
    • ドキュメンテーション化が進む
      • String 型だと何が入力/受付可能なのかわからない(もしくはコメントで書く必要がある)のが、わかりやすくなっていますね!

作り方

以下の3つを作ります

  • SQLでいう order by をまとめる InputObject

  • 並び替えをするカラムを指定する Enum

  • 並び替えをする方向を指定する Enum

query は以下のように実装しました。(簡略化しています)

おわりに

ざっと説明しましたが、みなさんのGraphQLでの実装の参考になれば幸いです。

これからもみなさんに共有できる情報があればどんどんしていきたいと思います。

それでは!