[Golang/React]~MovieApp-GraphQL2:Search機能を実装しよう!

こんにちは、KOUKIです。

GolangとReactでMovie Appの開発をしています。

今回は、GraphQLでSearch機能を実装します。

尚、Udemyの「Working with React and Go (Golang)」を参考にしているので、よかったら受講してみてください。

前回

GraphQLの導入を行いました

Search機能

GraphQLを使って、Search機能を実装しましょう。

ルートの共通化

GraphQLはエンドポイントを集約できるので、新しくルートを追加する必要はありません。ここがAPI開発においてメリットになる部分かと思います。

ただし、共通で使える名前に変更しておきましょう。

スキーマーの追加

Go側でスキーマーを追加します。

searchスキーマーを追加しました。リクエスト中に「titleContains」が存在すれば、検索処理を実行します。

Searchエリアの追加

GraphQLコンポーネントに、Searchエリアを追加します。

Searchクエリの発行

APIへクエリを発行します。

前回実装したListクエリと同じくPOSTを使うので、POSTリクエストを関数(graphQLRequest)として外だしし共通化しました。

GraphQLを利用することで「クエリ」のみを気にすれば良くなるので、結構使いやすくなりますね。

また、useStateを使ってSearch KeyをStateで管理しています。このキーに変更があった時、自動的にperformSearch関数がよばれるようにしました。

また、キーが空の場合は全件検索にしています。

検証

Search機能を検証してみましょう。

OKですね。

次回

次回は、GraphQLでAPIへのリクエスト&データの取得処理を実装しましょう

記事まとめ

参考書籍

ソースコード

graphql.go

routes.go

GraphQL.tsx

コメントを残す