気ままにITガジェットブログ
IT技術、ガジェット等を発信しています

HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法


公開: 2022年07月18日

HASURA
HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法

HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法

HASURAはデータベースのテーブルに対してgraphQLを実行可能にするEngineだ。
今回はHASURAのgraphQLでCRUDを実行する方法を紹介する。
またHASURAを簡単に構築する方法はこちらを参照してください。

関連記事


目次

graphQLの基礎

graphQLはRESTAPIに置き換えることができるクエリ言語です。
使用するHTTPメソッドはPOSTです。
メリットとしては、フロントエンド側とサーバーサイド側でスキーマ仕様を合わせるだけで、RESTAPIのように細かい仕様策定がいらないところです。

APIの実行側がレスポンスの形式も選択できるため、実装後でも柔軟に対応することができます。

RESTAPIにおけるCRUD(create/read/update/delete)がありますが、graphQLではCUDはmutationというもので処理をします。

とりあえずHASURAでCRUD相当の操作をやってみましょう。

read (GET) 実行方法

今回はprofilesというテーブルに対してGETをしてみます。
操作は簡単。HASURAのGUIのexplorerからテーブル名をカラム名を選択すると自動でgraphQLのクエリが生成されます。
HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法

query MyQuery {
  profiles {
    id
    name
  }
}

あとはそれを実行するだけですね。
自分でgraphQLを書いてもいいですが、このようにクエリの作成機能があるものHASURAの良いところ。

create (POST) 実行方法

次にprofilesテーブルのレコードを追加します。
今回はmutationで実行します。

HASURAではプレフィックスにinsert_がつきます。
以下のように選択するとgraphQLのクエリが生成されます。
HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法

mutation MyMutation {
  insert_profiles(objects: {id: 12, name: "hogee"}) {
    returning {
      id
      name
    }
  }
}

update (PUT) 実行方法

次にprofilesテーブルのレコードを更新します。
今回もmutation操作です。

HASURAではプレフィックスにupdate_がつきます。
以下のように選択するとgraphQLのクエリが生成されます。
HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法

mutation MyMutation {
  update_profiles(where: {id: {_eq: 12}}, _set: {name: "fugaa"}) {
    returning {
      id
      name
    }
  }
}

delete (DELETE) 実行方法

最後にprofilesテーブルのレコードを削除します。
今回もmutation操作です。

HASURAではプレフィックスにdelete_がつきます。
以下のように選択するとgraphQLのクエリが生成されます。
HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法

mutation MyMutation {
  delete_profiles(where: {id: {_eq: 12}}) {
    returning {
      id
      name
    }
  }
}

まとめ

HASURAでRESTAPIでよく使われるCRUDの操作を紹介しました。
ほかにもクエリに条件式を埋め込んだりできるので、非常に高機能です。

プロフィール


ニックネーム: ほっしー

ガジェット好きのエンジニア
面白い情報を収集しています。
IT関連の技術記事も書いています。 

PythonやGo, kubernetes等を使ってソフトウェア開発をしています。

資格: 応用情報技術者、ネットワークスペシャリスト、AWS SAA所持

サイト内ページ

人気ページ


役立ち情報