ファンリピート社のブログFR note

品質を追求するあなたへ!Bubbleでバリデーション関数の作成について解説!

Bubbleでバリデーション関数の作成について解説!

こんにちは。ファンリピートの鳴海です。

今回はBubbleでバリデーション関数の作成方法について、説明したいと思います。

目次

\ 年末までに限った無料特典 /
貴社のシステム開発・アプリ開発を爆速で進めるための
【毎月先着2社限定】デモアプリ構築・無料依頼フォーム

【当社では、こんなデモアプリがすぐに作れます】

  • 貴社で「まずつくってみたい」試作品アプリの構築を毎月先着2社限定で無料で承っております
  • 社内の管理システムからtoB, toCのWebサービスまで幅広くご支援可能です
  • ご興味のある方は下記のフォームよりお申し込みください

Bubble.ioとは

Bubble.ioは、直感的なドラッグ&ドロップ操作でシンプル〜複雑なWebアプリケーションを構築できるサイトです。

Bubble
Bubble: The full-stack no-code app builder. Start for free! A platform for beginners and experts alike. See why more than 4.69 million apps have been built and launched on Bubble.

ドラッグ&ドロップ操作

ドラッグ&ドロップという操作で、Webアプリが制作できます

またアプリをインストールする必要がなく、クラウドプラットフォームというサイト上でアプリケーションを構築できるので、インターネットがあればいつでもどこでもアクセスができるため、チームで連携してアプリを作れます。

レスポンシブに対応している

Bubble

画面サイズに合わせて、自動調整してくれる機能があります。

BubbleではCSS Flexboxと呼ばれるページ要素のレイアウト方法により、要素自体に0~100%、px単位で設定ができるため、細かいデザインの設計が可能となっています。

拡張性が高い

Bubble

プラグインでは、UI、機能など様々なプラグインをインストールできます。

マップ機能や検索機能などデフォルトでも様々なシステムが搭載されていますが、プラグインでは画像をスライドショーでの表示、ヘッダーをハンバーガーメニューなどといった機能があります。

バリデーション関数とは

バリデーションというのは、入力内容でデータ項目が正しく規定された条件などで適合しているか確認する機能です。

よくある例としては、フォームの入力欄でメールアドレスや名前などが空の状態のままだと送信ボタンがクリックできないようにしたり、アラート表示させて、ユーザー側に入力を求めるようにします。

今回は果物の発注管理の一覧画面で、データ項目が正しく反映されているか検証し、もし反映されていないものがあればポップアップでそのデータを表示させるようなデモアプリの作成方法について解説したいと思います。

API connectorとは

API connectorというのは、表記通りでAPI通信するためのプラグインとなっています。こちらについては以下参考にしていただければなと思います。

APIの概念、API connectorについて説明しています。

API connectorを使ったslackの通知方法について説明しています。

Bubble Backendとは

個人でAPIを作成して、アプリの画面上ではない裏側の処理でデータの編集や機能を実装する場所です。こちらについても以下参考にしていただければなと思います。

database change triggerという機能について説明しています。

Recursive API workflowやフロント側のページで設定したAPIを呼ぶ方法について説明しています。

実装方法について

注意としてBubble backend workflowについては、Starterプラン以上が対象ですので、Freeプランの方はご利用いただけません。現時点だと2週間のみstarterプランになれますので、デモアプリで一度実装してみたいという方はそちらを活用してください。

データ型

データ型については以下の通りです。

Userが注文した果物ごとに数量や値段を保持するデータとなります。

order data type
Bubbleデータ型

事前に以下の通りでデータを入れておきましょう。

値の内容は任意で、一部だけ空欄の状態にしてください。

User

ordersでは、orderで追加した情報のunique idを追加してください。

order's user record
Userレコード

Order

order records
Orderレコード

Bubble Backend workflow

Bubble Backend workflowを使えるように、Settingタブ>APIタブで有効にします。

Bubble
Bubble Backend worflow

ページタブのBackend workflowsを開きます。

Bubble
Bubble

New API workflow..を選択し、追加します。

Bubble
Bubble Backend worflow

パラメーターや名前を設定します。

ここではAPIで情報を受け取る際のどのようなデータ型かなどを設定できます。

Bubble
Bubble Backend worflow

処理では、受け取った情報内で異常があるものだけ返却するようにしたいので、Data > Return data from APIを選択します。

Bubble
Bubble Backend worflow

受け取った値に対してフィルターするようにします。

Bubble
Bubble Backend worflow

フィルター内では以下の内容が含まれているかどうか判定します。

  1. ユーザー名
  2. メールアドレス
  3. 注文情報
Bubble
Bubble Backend worflow

これでBackend workflowsの設定は完了です。

API connector

API connectorで作成したAPIを呼ぶ際に、tokenが必要なので発行します。

Bubble
Bubble API key

Pluginsタブ> + Add pluginsをクリックします。

Bubble
Bubble

API ConnectorでInstallボタンをクリックします。

Bubble
Bubble

そうすると、API connectorが追加されますので、Add another APIを押下します。

Bubble
Bubble

右上のexpandを押下し、Add a shared headers for all callsで先ほどのAPI keyを以下の通りで入力します。
Key:Authorization

Value Bearer 先ほどコピーしたAPI key

入力が終わりましたら、Add another callで実際に設定していきます。

Bubble
Bubble

以下の通りで設定します。

URLの設定項目

POSTメゾット

Use as Data

URL:[home url]api/1.1/wf/[functionName]

[home url]はもしブランチや本番反映などする際はURLがまた変わってきます   ので、ここでは動的な値をいれるようにしています。

home urlのvalueには、https://アプリ名/version-test/を入力します。

functionNameのvalueには、先ほどBackendで設定した名前を入力します。

Bubble
Bubble
Headersの設定

Key :Content-Type

Value: application/json

次にBody パラメーターを設定します。

Bodyパラメータの設定

Body paramters↓

{

    "user_list": [<user_list>]

}

Value↓

”ユーザーテーブルで追加したデータのunique id①”,”②”
Bubble
Bubble

上記で設定を完了したら、initialize callを押下します。

そして、successとできたら成功です。そのままSAVEボタンを押下しましょう。

Bubble
Bubble

Design

indexページを開き、Groupエレメントを配置して、エレメント内に再度GroupエレメントとRepeating groupを設置します。

Bubble
Bubble

Group Bというエレメント内には、以下のエレメントを配置します。

  1. checkboxエレメント
  2. Textエレメント x 5
    1. ユーザーID
    2. ユーザー名
    3. 注文数、注文名
    4. メールアドレス
    5. 作成日
Bubble
Bubble

次にGroup Bをコピーします。

Bubble
Bubble

Repeatinggroupエレメント内にペーストします。

Bubble
Bubble

現状だとただテキストのみ表示されるようになっていますので、各要素のデータソースを変更します。

Repeating groupのデータソース設定

Bubble
Bubble

Group userの設定

Bubble
Bubble

そして各エレメントでどの項目を表示するか設定します。

  1. ユーザーID
    1. userのuserID
Bubble
Bubble
  1. ユーザー名
    1. userのName
Bubble
Bubble
  1. 注文数、注文名
    1. orderのproductName、Quanity
Bubble
Bubble

※Delimiterでは改行を入れています。

  1. メールアドレス
    1. userのemail
Bubble
Bubble
  1. 作成日
    1. userのcreated date
Bubble
Bubble

※日付はyyyy/mm/ddのフォーマットにしています。

次にPOPUPを追加します。

Bubble
Bubble

POPUP内では、以下の通りに配置します。

  1. Iconエレメント
  2. Groupエレメント
    1. Repeating groupエレメント
      1. Groupエレメント
        1. Textエレメント
    2. Textエレメント
Bubble
Bubble

配置が完了しましたら、次にデータソースを設定します。

はじめにRepeatinggroupのiアイコンを押下して、set statesを追加します。

データ型はcheck_column response(APIの返却データタイプ)で、keyはvalidated_information_listで、listにチェックを入れます。

そして、Type of contentはcheck_column response(APIの返却データタイプ)、Data sourceは追加したset statesにします。

Bubble
Bubble

Layoutではページ読み込み時には非表示で、折りたたみはチェック

Bubble
Bubble

Conditonalでは、返却値が0ではない場合は表示となるように設定します。

Bubble
Bubble

Repeatinggroup内のGroupは下記のように設定します。

Bubble
Bubble

Textエレメントでは、UserIDを表示させます。

Bubble
Bubble

Groupエレメント内の2つめのTextエレメントは以下の通りです。

Bubble
Bubble

layout設定

ページ読み込み時には非表示で、折りたたみはチェック

Bubble
Bubble

Conditinal設定

返却値が0のない場合は表示となるように設定します。

Bubble
Bubble

POPUP内のIconを設定します。

Bubble
Bubble

Iconを設定して、Edit worflowを押下します。

Step1はPOPUPを閉じるように設定します。

Bubble
Bubble

Step2ではRepeating groupで設定したAPIの返却値をリセットします。

Bubble
Bubble

これでPOPUP内の処理は完了しました。

次に一覧画面で選択した内容をAPIに渡せるように実装します。

Repeating groupのiアイコンをクリックして、keyがselected_information、データタイプはUser、Listにチェックをいれましょう。

Bubble
Bubble

次にWorkflowタブを開き、An input’s value is changedを選択します。

Bubble
Bubble

Only whenでは選択していない時にします。

Bubble
Bubble

Step1では、先ほど追加したset statesに減らすようにします。

Bubble
Bubble

Workflowをコピーして、複製し、次は選択した時にします。

Bubble
Bubble

Step1では先ほどの:minusから:plusにして、追加するようにします。

Bubble
Bubble

最後に一覧画面上にボタンエレメントを追加します。

Bubble
Bubble

Edit workflowを押下して、Step1には以下の処理をいれます。

POPUP内で設定したset statesのvalueにAPI Providerを選択します。

Bubble
Bubble

そして下記の通りに設定します。

  1. home url :Website home URL
  2. (body)user_list :一覧画面のset states:format as text

という形に設定し、format as textでは“This User’s unique id*で、Delimiterは,にします。

Bubble
Bubble

設定ができましたら、最後にResponse Validation errorを選択します。

Bubble
Bubble

Step2では、POPUPを表示するようにすればOKです。

Bubble
Bubble

これで完成です。

まとめ

今回はBubble Backend worflowsでバリデーション関数について解説し、実際にデモアプリの作成方法について説明しました。ですがバリデーションの場合だとどの項目が異常なのかというのはユーザー側に明確化した方がいいので、もしこの実装方法についてわかったら、新しく記事を出したいと思います。

ここまで読んでいただきありがとうございました。

メンバーを募集中!

当社ではお客様に向き合い、お客様の事業成功にコミットをできる仲間を募集しています。

正社員、インターンから副業まで、幅広く採用活動を進めております。プロジェクトマネージャーやシステムエンジニアとして当社のシステム開発業務に携わってみませんか?

当社と共に、業界トップを目指して挑戦したい方は未経験者から経験者まで広く募集しているので、ぜひエントリーをお待ちしています。

\ システム開発にお悩みの方へ /
貴社のシステム開発・アプリ開発を爆速で進めるための
超高速開発が分かる資料3点セット

【下記の3点の資料が無料でダウンロードできます】

  • 【料金表付き】新規事業を爆速で立ち上げられる高速開発支援サービスの紹介資料
  • 【最短24時間で納品?】高速開発のプロジェクト支援事例集
  • 導入に向けて開発プラットフォームのランニングコスト比較表
  • URLをコピーしました!

この記事を書いた人

株式会社ファンリピートのアバター

株式会社ファンリピート

FRnoteは株式会社ファンリピートのメンバーによって運営されている社内ブログです。ノーコード・ローコードの技術ブログを始めとして、最新のIT技術、業務で役立つノウハウなど様々なトピックをまとめています。


目次
閉じる