GraphQL APIを試す

HasuraがPostgresでインスタントGraphQL APIを提供することは学びました。それを、先ほど作成したテーブルでテストできます。

それでは、users テーブルのGraphQL APIを紹介します。

ミューテーション

コンソール -> GRAPHIQLタブに移動して、GraphQLミューテーションを使ってユーザーを挿入します。

mutation {
insert_users(objects:[{name:"Praveen", email: "[email protected]", password: "password123"}]) {
affected_rows
}
}

GraphiQLインターフェースの Play ボタンをクリックして、クエリを実行します。

以下のような応答が得られるはずです。

{
"data": {
"insert_users": {
"affected_rows": 1
}
}
}

完璧です。これで、先ほど作成した users テーブルのミューテーションクエリを消費しました。簡単ですね。

ヒント:GraphiQLインターフェースの Explorer を使って、数回のクリックでミューテーションを生成できます。

クエリ

それでは、挿入されたばかりのデータのクエリを行いましょう。

query {
users {
id
name
created_at
}
}

以下のような応答が得られるはずです。

ユーザークエリ

created_at などの一部の列には、ミューテーション中に挿入しなくてもデフォルトの値があります。

サブスクリプション

users テーブルに対してサブスクリプションクエリを実行して、テーブルの変更を確認しましょう。

subscription {
users {
id
name
created_at
}
}

最初に、サブスクリプションクエリは、応答に既存の結果を返します。

それでは、新しいデータをユーザーテーブルに挿入して、応答に表示される変更を確認しましょう。

新しいタブで、コンソール -> DATAタブ -> ユーザー -> 行を挿入に移動して、別の行を挿入します。

そして、前の GRAPHIQL タブに切り替えて、2つの結果を返すサブスクリプション応答を確認します。

ユーザーサブスクリプション

アクティブなサブスクリプションクエリは、クエリに応じて、最新の結果のセットを返し続けます。

Did you find this page helpful?
Start with GraphQL on Hasura for Free
  • ArrowBuild apps and APIs 10x faster
  • ArrowBuilt-in authorization and caching
  • Arrow8x more performant than hand-rolled APIs
Promo
footer illustration
Brand logo
© 2024 Hasura Inc. All rights reserved
Github
Titter
Discord
Facebook
Instagram
Youtube
Linkedin