Hasuraを使ってみた話


Hasuraとは

Hasuraとは、PostgreSQLからGraphQLAPIサーバを自動で構築してくれるツールです。
GraphQLのリクエストの受け取ると、SQLの発行から、データ取得、レスポンスの返却まで自動で行ってくれます。

どのRDBに対応しているか?

現在PostgreSQLにのみ対応していますが、MySQL対応のプレビュー版が2020年9月に公開され、SQL Server対応版が近々公開されるそうです。

環境構築(ローカル)

以下のコマンドを実行してdocker-composeを入手します。

$ curl https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-compose/docker-compose.yaml -o docker-compose.yml

入手したファイルは編集を加える必要はなく、以下のコマンドで起動させます。

$ docker-compose up

起動できたら http://localhost:8080/console にアクセスするとコンソールが表示されます。

環境構築(クラウド)

Hasura Cloudというサービスがあるのでこちらを使用します。

AWSにHasura、HerokuにPostgreSQLをそれぞれ自動で構築してくれるサービスになっています。
予めHerokuのアカウントを作成しておく必要がありますが、それを含めても数分で構築できます。
Hasura、PostgreSQLともに無料で使用できます。

コンソール


コンソールからAPIの送信、PostgreSQLのテーブル作成・データ投入などができます。

テーブルの作成

コンソールのDATAタブからCreat Tableをクリックすると作成画面が表示されるので、以下のようにカラム名などを入力していきます。

ページ下部にあるAdd Tableをクリックすると以下のように、作成したテーブルの管理画面に遷移します。
ここからデータのINSERTやUPDATEなどができます。

Mutationを使用したデータの追加

最後に

PostgreSQLのデータ管理だけではなく、Auth0アプリの作成も手軽にできるようなので、色々試してみたいと思います。