💨

REST APIと連携してCRUDができる管理画面をローコードで10分で開発する

2023/10/18に公開

今回の対象読者

REST APIを利用してサービスを作っている際、CRUD操作を行う管理画面の開発に苦労した経験はありませんか?

今回は、以下のような方に向けて、ローコードツールの『Querier(クエリア)』を使って、10分で管理画面を構築する方法を紹介していきます。

  • Admin向けAPIはあるが、エンジニアがAPIを叩いて対応している
  • Next.jsなど、ReactやVueのライブラリで管理画面を開発しようか迷っている
  • とにかく早く、Admin向けのREST APIと連携して管理画面を作りたい

今回作る管理画面

今回は、以下の要件を満たす管理画面を作ってみます。

  1. REST APIからユーザー一覧を取得し、テーブルに表示する
  2. ユーザー名と性別を入力してユーザーデータをPOSTする
  3. テーブルで選択された行のユーザーの投稿一覧をテーブルに表示する

クエリアとは

クエリア様々なデータベースやAPIと連携し、社内向けの管理画面やツールをローコードで構築できるサービスです。

https://www.querier.io

実際に管理画面を構築する前に、クエリアの編集画面の構成を解説します。

大き分けて、 データフロー というロジックを記述する部分と、 コンポーネント というUIに関わる部分に分かれています。

右ナビゲーションのコンポーネント一覧から、中央のキャンバスにドラッグ・アンド・ドロップでコンポーネントを配置し、左ナビゲーションで各データソースに対するリクエストやロジックを記述していきます。

3分で分かるクエリアの紹介動画もあるので、ご興味ある方はぜひ見てみてください。

https://www.youtube.com/watch?v=uXgu3kDLKcI

クエリアとREST APIを連携する

早速、クエリアとREST APIを連携する設定をしていきます。

  1. クエリアに移動し、左の [データ連携] タブから、データ連携の設定ページに行く
  2. [新規作成] > [GraphQL] と選択する
  3. すでに開発してあるAdmin向けAPIの [Base URL] を入力する
  4. [認証方法]Bearer を選択し、[Bearerトークン] にトークン情報を入力して、保存する

詳細な接続方法はこちらの公式ドキュメントをご覧ください。

新しいページを作成する

データ連携が完了したら、新しいページを作成します。
プロダクトトップ右上の、 [新規作成] > [ページを作成] から、新しいページを作成します。

クエリアでは、フォルダとページという概念があり、ページをフォルダリングして、階層構造で管理できるので、ページが増えてきても管理が煩雑になることはありません。

ユーザー一覧をテーブルに表示する

以下の手順でREST APIからユーザーを取得し、テーブルに表示していきます。

REST APIからデータを取得するデータフローを作成する

  1. 作成したページの [ページを編集] から編集画面に行く

  1. 左ナビゲーションの [新規作成] から、データフローを作成しする
  2. [アクションを選択] パネルで、先程連携したREST APIを選択する
  3. [メソッド] で、GET を選択する
  4. [パス]/v1/users と入力する
  5. [アクションをテスト] ボタンを押し、正しくデータが取得できているか確認する

テーブルを配置し、データフローと紐付ける

  1. 右ナビゲーションの [テーブル] を中央にドラッグ・アンド・ドロップする

  1. 右ナビゲーションの [データ]{{ dataflow1.data.users }} と入力する

  1. 右ナビゲーションの [カラム] の設定から、カラム名を変更する
  2. 右ナビゲーションの [カラム] の設定から、カラムタイプを変更する(タイプを Image などにすると自動で画像表示になったりします)

ユーザーの追加機能を実装する

今回は、ユーザー名と性別を使ってユーザーを作成する例を紹介します。

フォーム系コンポーネントを配置する

  1. 右ナビゲーションの [インプット] を中央にドラッグ・アンド・ドロップする
  2. 右ナビゲーションの [ラベル]ユーザー名 と入力する
  3. 右ナビゲーションの [セレクト] を中央にドラッグ・アンド・ドロップする
  4. 右ナビゲーションの [ラベル]性別 と入力する
  5. 右ナビゲーションの [Values]["male", "female"] と入力する
  6. 右ナビゲーションの [Labels]["男性", "女性"] と入力する
  7. 右ナビゲーションの [ボタン] を中央にドラッグ・アンド・ドロップする
  8. 右ナビゲーションの [ラベル]追加する と入力する

REST APIでデータを追加するデータフローを作成する

  1. 作成したページの [編集する] から編集画面に行く
  2. 左ナビゲーションの [新規作成] から、データフローを作成しする
  3. [アクションを選択] パネルで、先程連携したREST APIを選択する
  4. [メソッド] で、POST を選択する
  5. [パス]/v1/users と入力する
  6. [Body] に以下のJSONを入力する
{
  "name":   {{ input1.value }},
  "gender": {{ select1.value }}
}

※クエリアでは、{{ }} という記法を使って、コンポーネントの値を参照することができます。

ボタンとデータフローを紐付ける

ボタンを押下したら、上で作成したデータフローが実行されるようにしたいので、以下の手順で設定していきます。

  1. 配置した [ボタン] を選択する
  2. 右ナビゲーションの [イベントを追加する] をクリックする
  3. [実行するアクション]データフローの実行 にする
  4. [データフロー] で、先程作成した dataflow2 を選択する

ユーザーを作成した後にテーブルをリフレッシュする

  1. [dataflow2] を選択する
  2. [成功時に実行するアクション] から [イベントを追加] をクリック
  3. [実行するアクション]データフローの実行 にする
  4. [データフロー] で、ユーザーデータの取得をする dataflow1 を選択する

これで、ユーザーの追加が成功したら、再度ユーザー一覧を取得し直す設定が完了しました。
同じような要領で更新や削除、ファイルのアップロードなども行えるので、基本的な管理画面の要件は満たす十分な機能を備えています!

ユーザーに関連するデータを取得する

クエリアでは、関連するデータを取得することもできます。今回は、ユーザーに関連する投稿を取得して表示してみましょう。

データフローの [パス]/v1/users/{{ table1.selectedRow.data.id }}/posts などとすることで、テーブルで選択されたユーザーに関連する投稿を取得することも可能です。

権限管理

権限管理をツール側に移譲できるのは、ローコードツールを利用する大きなメリットの一つです。
クエリアでは、様々な権限管理をGUIで操作するだけで完結します。

クエリアでは、各ページに対して、メンバーごとに、「フルアクセス」、「閲覧のみ」、「アクセス不可」の権限を割り振ることができます。

その他にも様々な権限管理をすることができますので、詳しくは公式ドキュメントをご参照ください。

ローコードであれば、管理画面開発がエンジニア1人で完結する

今回は、ローコードツールとREST APIを使って管理画面を構築していきました。
管理画面の開発は、常にエンジニアのリソースを圧迫し、悩みの種の一つになっていると思います。

ローコードツールを使えば、ツールが提供する整ったUIコンポーネントをドラッグ・アンド・ドロップで配置するだけなので、UIに関して考えることは一切ありません

APIの構造を一番理解しているバックエンドエンジニア一人で管理画面の開発が完結します。

これにより、手を動かす時間はもちろん、デザインバグやAPIのデータ設計のやり取りなどの時間を削減でき、大幅に管理画面開発全体の工数を削減することができます。

このように、管理画面をローコードで開発する方法は、エンジニアのリソースを削減する有力な手段です。特にスタートアップや時間とリソースに制限があるプロジェクトにおいて、このアプローチは非常に有用です。

ぜひ一度試して、その効果を実感してください。

https://www.querier.io

クエリア

Discussion