【ハスラ】

Hasura とは?

最終更新:
💡 データと設定から、GraphQL APIを組み立てる

データベースなどのデータソースと設定を基に、GraphQL APIの生成・実行を支える製品群。GraphQL Engine v2やHasura DDN(v3)があり、設定方法や対応機能が異なる。アクセス権限や独自の処理も設計して使う。

📌 このページのポイント
データと設定からGraphQL APIを組み立てるデータソースDBなどHasuraAPIを生成権限を設定要求を実行アプリWeb・モバイル対応する操作や設定方法は、版と接続先による認証の連携・権限・業務処理も設計v2:Console DDN:CLIを中心に構築データベースそのものの代わりではない
元のデータソース・Hasura・アプリの構成を簡略化した図です。矢印はAPIを提供する関係で、クライアントからの要求や応答の通信方向をすべて描いたものではありません。CRUDや購読の対応はバージョン・コネクター等によります。
ひよこ ひよこ
Hasuraは、データベースの代わりなの?
ペンギン先生 ペンギン先生
データを保存するデータベースそのものではなく、データへアクセスするAPIを組み立てる側だよ。例えばv2ではPostgreSQLなどに接続し、公開するテーブルや関係、権限を設定してGraphQL APIを扱うんだ
ひよこ ひよこ
DBをつなげば、必要な機能が全部できる?
ペンギン先生 ペンギン先生
APIの生成を助けるけれど、業務上の処理やアクセス制御まで自動で正しく決まるわけではないよ。何を公開するか、誰が何を読んだり変えたりできるかを決める。対応する操作もバージョンやデータソースによるんだ
ひよこ ひよこ
読み取り、更新、購読はどう違うの?
ペンギン先生 ペンギン先生
GraphQLではqueryで取得、mutationで変更、subscriptionで継続的な更新の受信を扱うよ。Hasura DDNでは、mutationを自動生成するコネクターもあれば、独自の処理などを定義するものもある。購読も、使う構成の対応を確認しよう
ひよこ ひよこ
自分のデータだけ見せることもできる?
ペンギン先生 ペンギン先生
v2では、ロールと操作ごとに行や列の権限を設定できるよ。本人を確かめる認証と、許可する操作を決める認可は別の役割。JWTやwebhookなどで認証と連携し、ユーザー情報に合った権限を設定するんだ
ひよこ ひよこ
v2とDDNは、同じ手順で使える?
ペンギン先生 ペンギン先生
DDNはコネクターや宣言的な設定を使い、CLIを中心にAPIを構築するので、v2のConsole中心の手順とは違うよ。独自の処理も、v2のActionsやDDNのlambda connectorなどで組み込む。利用する版とコネクターの資料を合わせて確認しよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Hasura」って出てきたら「データと設定からGraphQL APIを組み立てる製品」と思えばだいたいOK!
📖 おまけ:英語の意味
「Hasura」 = 製品・サービスの固有名詞
💬 GraphQL EngineやDDNなどを提供する名前だよ。英語の一般用語の略として覚える必要はないんだ

参考資料

← 用語集にもどる