graphql-rubyでtotalCountをクエリできるようにする
こんなQueryを投げれるようになりたい。
{ users(first: 5) { totalCount edges { cursor node { id } } } }
環境
方法
GraphQL::Types::Relay::BaseConnection
の継承クラスを作成し、total_count
を追加する。
module Types class BaseConnection < GraphQL::Types::Relay::BaseConnection field :total_count, Int, null: false def total_count object.items&.size end end end
Types::BaseObject
のconnection_type_class
に、上記クラスを指定する。
module Types class BaseObject < GraphQL::Schema::Object field_class Types::BaseField connection_type_class Types::BaseConnection end end
結果例
{ "data": { "users": { "totalCount": 100, "edges": [ ...略... ] } } }