HASURA入門 graphQLでテーブル作成方法 CRUDの実行方法
公開: 2022年07月18日
HASURA
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のクエリが生成されます。
query MyQuery {
profiles {
id
name
}
}
あとはそれを実行するだけですね。
自分でgraphQLを書いてもいいですが、このようにクエリの作成機能があるものHASURAの良いところ。
create (POST) 実行方法
次にprofilesテーブルのレコードを追加します。
今回はmutationで実行します。
HASURAではプレフィックスにinsert_
がつきます。
以下のように選択するとgraphQLのクエリが生成されます。
mutation MyMutation {
insert_profiles(objects: {id: 12, name: "hogee"}) {
returning {
id
name
}
}
}
update (PUT) 実行方法
次にprofilesテーブルのレコードを更新します。
今回もmutation操作です。
HASURAではプレフィックスにupdate_
がつきます。
以下のように選択するとgraphQLのクエリが生成されます。
mutation MyMutation {
update_profiles(where: {id: {_eq: 12}}, _set: {name: "fugaa"}) {
returning {
id
name
}
}
}
delete (DELETE) 実行方法
最後にprofilesテーブルのレコードを削除します。
今回もmutation操作です。
HASURAではプレフィックスにdelete_
がつきます。
以下のように選択するとgraphQLのクエリが生成されます。
mutation MyMutation {
delete_profiles(where: {id: {_eq: 12}}) {
returning {
id
name
}
}
}
まとめ
HASURAでRESTAPIでよく使われるCRUDの操作を紹介しました。
ほかにもクエリに条件式を埋め込んだりできるので、非常に高機能です。