誰でもかんたんにWebアプリを開発できるノーコードツールとして、バランスが良いとされているものに”Adalo”があります。
書き起こし【ノーコード分科会】No-Codeの「DB設計」について語ろう!~Bubble会~ | まほウェブ の記事でも、使い勝手のよい中級者向けノーコードツールとしてAdaloが好印象的に取り上げられていました。
書き起こし【ノーコード分科会】No-Codeの「DB設計」について語ろう!~Bubble会~
Adaloはデータベース内蔵型のwebアプリ開発ノーコードツールなのですが、内蔵のデータベースを利用せず、外部データベースとして別のデータベースと接続することが可能。
その際、同じくデータベース型NoCodeツールである”Airtable”となら比較的に容易に接続できます。
本記事では、APIを通じてAdaloでAirtableのデータベース(ユーザーテーブルを除く)を利用する方法について說明をしていきます。
基本的には、AdaloによるAirtable接続說明ドキュメント: Connecting to Airtable Adalo Resources に全て說明があります。
つまづきポイントがいくつかあったので、備忘録として手順記録を残します。
目次
AirtableをAdaloの外部データベースとして利用する際の注意点
AirtableをAdaloの外部データベースとして利用することは可能ではありますが、いくつか注意点があります。
ユーザーテーブルとしては利用不可(2021年7月現在)
まず注意点として、「ユーザーテーブル」については2021年7月現在ではAdaloとAirtableを接続させることはできません。Adaloの外部データベースとしてAirtableを利用できるのは、ユーザーテーブル以外の通常テーブルとなります。
参考: Adaloで外部データベース上のユーザーテーブルを利用する方法 。Airtableは不可 | まほウェブ
Adaloで利用可能なフィールド(カラム)の種類が制限されている
Adaloで利用できるフィールド(カラム)の種類ですが、基本的には下記種類のみです。
- Text
- Number
- Date
Airtableはこれ以上のフィールドの種類がありますが、上記以外のフィールドはAdaloに読み込ませた場合、テキストフィールドのような扱いとなります。
また致命的なのが、リレーションを持たせたフィールド(Link to Another Table)についても関係性が保持されず、単なるテキストフィールドのような扱いになってしまう点です。
Adaloからの入力によってAirtableでテーブル同士にリレーションをもつフィールドを入力するには、手間をかけ工夫をする必要があります。
フィールド(カラム)数が多いと読み込まれない場合がある
これは詳細未検証ですが、40を超えるフィールド数をもつテーブルが上手く読み込まれないケースがありました。
フィールド数が多い場合には、Airtable側のテーブルを整理してから接続させるようにしましょう。
AirtableのAppごとのAPIキーの場所
それではここから、Adaloの外部データベースとしてAirtableを接続させる方法を順にご説明します。
ブラウザでAirtableにログインした後、 REST API Airtable に自身のApp一覧が表示されるので、接続させたいApp名をクリック。
上記リンク以外にもブラウザからAirtableへログイン後、アカウントメニューからも移動可能。(下記)
右上アイコン: Account > Account overview: Airtable APIリンクをクリック
初めてAPIを利用する方の場合、上の画像と異なり"Generate Key"というボタンがあるはずなので、その"Generate Key"をクリックしてAPIキーを作成のうえ、Airtable APIリンクから移動してください。
別のAPIリンクへの行き方として、接続させたいAppをブラウザから開き、右上のHELP > API documentation からも行くことができます。
Airtable側のAPI Base URLを取得
接続させたいAppのAPI管理画面を開いたら、接続させたいテーブルを左メニューから選択。
選択したテーブル直下に拡張表示された項目の中から、List recordsを選択。
画面右上のshow API keyにチェックをいれる
黒い画面のタブ名が"curl"のままであることを確認したら、黒い画面2行目の"https://api.airtable.com/v….?" のURLをコピー
コピーする箇所はhttpsから?の直前まで。?は含めないようにコピーする。
これがAirtable任意テーブルのAPI Base URLとなる。
Adalo側でデータベースAPI接続の設定を行う
AirtableのAPI Base URLのペースト
Adaloへログイン。Airtableと接続させたいAdaloアプリを開く。
画面左側メニューからDataBase項目を選択。(シートのアイコン)
下へスクロールし、External Collections項目のADD COLLECTIONを選択。
任意のコレクション名(テーブル名)をつけ、先程AirtableからコピーしたAPI Base URLをペースト。
AirtableのAPI認証設定
上のようにAPI Base URLをペーストできたら、同画面でのAuth Setup項目で"ADD ITEM" > Header と選択。
Nameはプレースホルダーのように、"Authorization"と入力。
Valueは下記AirtableのAPI画面からコピーした値をペーストする。
先程のAirtable API管理画面の任意のテーブル > List Recordsの画面へ。
-H "Authorization: Bearer key….." の箇所。
: を含めず、Bearerは含める。 "Bearer key….. " の値をコピーする。
コピーした値をAdaloのAuth Setup > Header > Valueにペースト。DoneをクリックしてAuth Setupに
Header(Authorization)の項目が追加されていたら"NEXT"で次に進む。
Endpointの設定
Endpointについての說明と各項目については下記のとおり。
Endpoints are words that programmatically create methods for what you want to do with your data. Typically this is what they represent:
Get = Retrieve Record (Get All or use a parameter to Get One)
Post = Create Record
Delete = Delete Record
Put or Patch = Update Record
Connecting to Airtable : 3) Set up the API Endpoints
意訳: エンドポイントとは、あなたがデータを利用して何をしたいかという処理方法をプログラミング的に決めることです。典型的に、それぞれ下記のような意味をもちます。
Get = レコードを取り出す(全てまたは1つ) Post = レコードを作成する Delete = レコードを削除する Put or Patch = レコードの値を更新する
AdaloとAirtableの接続では、下記2つのエンドポイントについて設定を変更します。
Get All: Results Keyに records と入力。
Update: Methodを PATCH に変更。
この2つのエンドポイント設定が完了したら、API設定をテストします。中央のRUN TESTボタンをクリックしてテストを実行。
下のようにTest Successful! と表示されたら無事にAPI設定ができています。
下のような An error occurred .. の画面が表示された場合、どこかの設定で躓いています。
エラーの場合、たとえば下記を見直しましょう。
- Airtableで取得したAPI Base URLは正しいか? URLの最後に?を含まない形にできているか
- Auth Setupでの認証設定は正しいか? Headerの選択、Authorizationとの入力、valueの値に間違いがないか確認
- エンドポイント設定は行ったか?たとえば、Get Allの値に records と入力したか
ここまでが完了できたら、AdaloのExternal Collectionの項目に、設定したAirtableのテーブルが表示されているはずです。
さらにテーブルを追加したい場合には、External collectionsの下、ADD COLLECTIONをクリックして、同様の設定を繰り返してください。
※ AdaloでAirtableの各フィールド(カラム)項目を利用する場合、そのフィールドのどこかに最低1つは値が入っている必要があります。利用したいフィールド名が表示されない場合、Airtable側で値を入力してから、再度API接続設定を行って更新してください。
外部データベースで接続した場合、フィルタの方法がAdaloのものと異なる
データ表示の際、絞りこみをかけるためにフィルタが用いられますが、外部データベースからのデータの場合は通常のAdalo内データベースのときとフィルタの設定方法が異なります。
各外部データベースによって記述方法は異なりますが、たとえばAirtableの場合にはAirtableのFormula記述方法を用いてフィルタ設定を行う必要があります。
詳細は下記リンク先を参考にしてください。
Leave a Reply