Closed9

Hasura.ioについての調査メモ

okunokentarookunokentaro

Hasuraは何ができる

  • GraphQL resolver, serverを代わりに作ってくれるSaaS
    • 設定なしでリニアなスケーラビリティ
  • 認証も考慮
    • モデルレベルで認証ルールを簡単に指定
    • Fortune 500のヘルスケア、金融サービス、米国連邦政府機関などの高度に規制された環境でのミッションクリティカルなデータアクセスを可能に
    • 認証系の複数回のアクセスを回避
  • 既存データベースからもGraphQL APIを作れる(今回の調査からは対象外)
  • Hasuraはすぐに使い始められGraphQLエキスパートでなくてもよい
    • N+1を防ぐクエリのコンパイル
    • デカルト積問題を回避
okunokentarookunokentaro

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特有の説明。

okunokentarookunokentaro

Hasura GraphQL Engine Documentation

https://hasura.io/docs/latest/graphql/core/index.html

  • Hasura利用者のデータをリアルタイムのGraphQL APIで即座にアクセスできるように構築
    • API提供をより迅速、簡便に
  • データベース、RESTサーバ、GraphQLサーバ、およびサードパーティのAPIに接続
    • すべてのデータソースで統一されたリアルタイムのGraphQL APIを提供
  • ドキュメントカテゴリは以下に分岐
    • 基礎
    • ビジネスロジックの取り扱い
    • 認証認可
    • CI/CDとデプロイ
    • リファレンス
    • ガイド・補遺
okunokentarookunokentaro

基礎

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に公開できない場合
okunokentarookunokentaro

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の機能が使えなくされたりはしないってニュアンスだと解釈
このスクラップは2021/08/21にクローズされました