Hasura.io
Docker で試す
立ち上げ
一瞬で試せてびっくりする。
すでに専用の docker-compose.yml が用意されていて、以下を実行するだけで postgress と hasura が立ち上がる。
code:shell
$ docker-compose up -d
http://localhost:8080/console にアクセスすると、コンソールが見れる。
テーブルの作成
HASURA のコンソールからテーブルの作成ができる。以下のようなスキーマのためのテーブルを作成する。
code:graphql
profile (
id INT PRIMARY KEY,
name TEXT
)
https://gyazo.com/5e8e4bbc3d0849682d621a1d21b2b654
行の挿入。
https://gyazo.com/de0c7533a74215967ff9e23bf986a3ef
検索
GraphiQL から検索。
https://gyazo.com/8eb377286d01c55cd596da5d72b30c7e
デフォルトで AND, OR, ORDER_BY 等は用意されている。
https://gyazo.com/95ebeaec253d93a0ec5671b61288a4e6
イベントトリガー
Postgres 上のテーブルに起きたイベントにフックして、外部のビジネスロジックをトリガーできる。
https://gyazo.com/18e4c4e5832fc5398e04c142b92a0eba
リモートスキーマ
https://gyazo.com/ac279aa6f3e1df2c7f1b5782840ad845
View
気になること
join どうするのか?
テーブル間のリレーションは、外部キーを作ることでもできるし、外部キー設定がない場合にも作成できるようだ
カスタムクエリーは作成できるのか?
集合関数や副問い合わせもできるらしい
カスタムリゾルバーは利用できない
Schema Stitching を利用する
Hasura GraphQL エンジンにプロキシする GraphQL プロキシをかく
code:sql
CREATE VIEW author_average_rating AS
SELECT author.id, avg(article.rating)
FROM author, article
WHERE author.id = article.author_id
GROUP BY author.id