Hasura.io
Docker で試す
立ち上げ
一瞬で試せてびっくりする。
すでに専用の docker-compose.yml が用意されていて、以下を実行するだけで postgress と hasura が立ち上がる。
code:shell
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/docker-compose/docker-compose.yaml
$ 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://docs.hasura.io/1.0/graphql/manual/event-triggers/index.html#
リモートスキーマ
https://gyazo.com/ac279aa6f3e1df2c7f1b5782840ad845
View
https://docs.hasura.io/1.0/graphql/manual/schema/views.html
気になること
join どうするのか?
テーブル間のリレーションは、外部キーを作ることでもできるし、外部キー設定がない場合にも作成できるようだ
カスタムクエリーは作成できるのか?
集合関数や副問い合わせもできるらしい
カスタムリゾルバーは利用できない
Schema Stitching を利用する
Hasura GraphQL エンジンにプロキシする GraphQL プロキシをかく
https://news.ycombinator.com/item?id=16880803
https://medium.com/@takeshiamano/ぐるなびのrest-apiをhasuraでgraphqlにしてみた-9f6516b0d28b
https://medium.com/@takeshiamano/vuejs-hasura-graphql-postgresqlで作ったtodoアプリのデモ-その1-6d566cf64ebf
https://nordicapis.com/comparing-tools-for-graphql-schema-stitching-hasura-vs-apollo/
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