graphql-rubyでGraphQL::InputObjectTypeを利用してnestedなクエリの検索を行う

はじめに

graphql-rubyを利用してqueryを投げる際に、対象のリソースに関連する別のリソースの属性を検索の条件に指定したい、といった要望は割と頻繁にあるかと存じます。

そういった場合に活躍するのがGraphQL::InputTypeです。

こちらのモジュールを利用することで、本来であればスカラ値のみであった検索クエリにオブジェクト型を混ぜることができます。

実装

具体的には以下の通り、API側でGraphQL::InpuTypeを利用したオブジェクトを定義します。

そして、フロント側から同じ構造のクエリをjavascript側から投げます。

ちなみにapollo-moduleを利用する場合は、以下のような感じですね。

表題とは少し外れますが、apollo-module(vue-appoloのnuxt向けモジュール)を利用する際には、variablesがdataと同様にfunctionとして定義された上で、必要な値をreturnで値を返さなければなりません。

Rails

Posted by poison