【Hasura】GraphQL簡単実装に加えsocketリアルタイム取得も

こんにちは、フリーランスエンジニアの太田雅昭です。

Hasuraが便利すぎる

Instant GraphQL APIs on your data | Built-in Authz & Caching

Hasura gives you instant GraphQL and REST APIs on new and existing data sources. Connect Hasura to your data & get APIs in under a minute.

Hasuraが便利すぎてよだれが出っ放しです。

以下のような点が便利です。

  • Postgresデータベースがあれば、GraphQLエンドポイントを自動生成してくれる。(一応、他のデータベースも対応)
  • 自動でGraphQLのサブスクリプションを生成してくれるので、リアルタイムUIが簡単に作れる(Postgressのみらしい)
  • テーブルやフィールドごとに認証をつけれる。認証情報はJWTで送信。ロールベース。
  • Dockerで使える

特にサブスクリプションを作ってくれるのが、とても便利です。これまでリアルタイム処理にsocketでゴリゴリ書いていたのですが、これならかなり工数を減らせます。

GraphQL初心者の私ですが、Hasuraのおかげでスラスラと実装が進めれてます。以前Strapiを試した時にもだいぶ衝撃だったのですが、それ以上です。時間的コストをかけてでも導入してよかったです。

ちなみに現在、以下のようにして使用しています。

  • Prismaスキーマで構造を作成し、データベースにmigrate
  • Hasuraでデータベースを読み込んでGraphQLエンドポイントを自動生成
  • Hasuraで自動生成されたスキーマとgraphql-codegenを使用して、手打ちでGraphQLクライアントを作成。
  • Apollo clientでGraphQLエンドポイントにアクセス。

うーん、美しい。

小話

最近PCの性能が足りなくなってきました。APIサーバー、データベースサーバー、Hasura、フロントエンドサーバーを同時に立ち上げて音楽を聴きながらブラウザ複数タブで調べ物しながらコーディングをしているため、しょっちゅう重くなります。それぞれのアプリを再起動させたりして作業していますが、新しいPCが欲しい。。。