Closed9
Hasura.ioについての調査メモ
Hasura.io
Hasuraは何ができる
- GraphQL resolver, serverを代わりに作ってくれるSaaS
- 設定なしでリニアなスケーラビリティ
- 認証も考慮
- モデルレベルで認証ルールを簡単に指定
- Fortune 500のヘルスケア、金融サービス、米国連邦政府機関などの高度に規制された環境でのミッションクリティカルなデータアクセスを可能に
- 認証系の複数回のアクセスを回避
- 既存データベースからもGraphQL APIを作れる(今回の調査からは対象外)
- Hasuraはすぐに使い始められGraphQLエキスパートでなくてもよい
- N+1を防ぐクエリのコンパイル
- デカルト積問題を回避
Hasuraを始める
下記3つから選択。SaaSとしてのHasuraかOSS + Dockerでデプロイする想定のHasuraかでわかれる。
- Hasura Cloud
- フルマネージドSaaS
- Hasura CE
- オープンソース、Dockerでどこでもデプロイ
- Hasura EE
- オンプレ
- Hasura CE企業向けバージョン
ドキュメントの読み方
たぶんHasura Core
がHasura CEを筆頭とするHasura全体の説明、Hasura Cloud
がHasura Cloud特有の説明。
Hasura GraphQL Engine Documentation
- Hasura利用者のデータをリアルタイムのGraphQL APIで即座にアクセスできるように構築
- API提供をより迅速、簡便に
- データベース、RESTサーバ、GraphQLサーバ、およびサードパーティのAPIに接続
- すべてのデータソースで統一されたリアルタイムのGraphQL APIを提供
- ドキュメントカテゴリは以下に分岐
- 基礎
- ビジネスロジックの取り扱い
- 認証認可
- CI/CDとデプロイ
- リファレンス
- ガイド・補遺
基礎
https://hasura.io/docs/latest/graphql/core/getting-started/index.html#getting-started
Hasura GraphQLエンジンを使用するには
- PostgreSQLデータベースへのアクセスが必要(MySQL版Hasuraについてはメモから除外)
- 新規/既存のデータベースに接続し、Hasura コンソール UI を使って GraphQL API をセットアップ
- Hasuraによって生成されたGraphQL APIをクライアントアプリから利用
Hasuraのクイックスタート
- Hasura Cloud
- 数回のクリックで新しいHasura Cloudプロジェクトを作成
- Hasura GraphQLエンジンを試す最も早い方法として推奨
- 信頼性とセキュリティのための追加機能と、管理されたメタデータデータベースが付属
- Dockerを使う
- Docker Composeを使ってHasura GraphQLエンジンとPGメタデータ・データベースをセットアップ
- 下記対象にお勧め
- ローカルでHasuraを動かしたい場合
- データベースをHasura Cloudに公開できない場合
PostgreSQL
https://hasura.io/docs/latest/graphql/core/databases/postgres/index.html
- Hasuraは、Postgresデータベースに接続し、データベーススキーマに基づいてGraphQL APIを構築することができる
- Hasura GraphQLエンジンは、PostgreSQL 9.5以上をサポートしている
- 2021年7月現在のPostgreSQL 最新版は13.x
スキーマ
https://hasura.io/docs/latest/graphql/core/databases/postgres/schema/index.html
- Hasura GraphQLエンジンは、PostgreSQLのテーブル/ビューに基づいて、GraphQL schemaとresolverを自動的に生成
- コンソールは自動的にマイグレーションやメタデータファイルを生成
- 直接編集したり、バージョンコントロールにチェックを入れることができる
- Hasura GraphQLエンジンは、PostgreSQLのネイティブコンストラクトの上にGraphQLを与えることにより、通常PostgreSQLで行うことを何でもできるようにする
- (私見)何言ってるかちょっとわからんけどHasuraによってPostgreSQLの機能が使えなくされたりはしないってニュアンスだと解釈
- Hasura Cloudを使いながらHasura CLIで操作することはできる?
- Docker版のみの権利かと思ったら、どうやらあるらしい
- https://zenn.dev/takaonarikawa/articles/9a1ecfadd7df3a#ローカルで作業
とりあえずHasura CLI入れよう。
Install Hasura CLI
https://hasura.io/docs/latest/graphql/core/hasura-cli/install-hasura-cli.html
curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
このスクラップは2021/08/21にクローズされました