Function Hub
Function Hub(機能ハブ)は、カスタムアクションを使用してAdaloアプリから呼び出すことができるユーティリティ関数を提供するAPIです。算術演算、文字列操作、時間計算などの機能を提供しています。
Function Hubは現在、初期ベータ版として提供されており、Adaloビルダーにはまだ完全に統合されていません。APIキーを生成するには、コマンドラインツールのcURLを使用し、アプリケーションIDを指定してください。
$ curl -X POST https://functionhub.adalo.com/api/keys \
-H "Content-Type: application/json" \
-d '{"app_id": "YOUR-APP-ID"}' \
{"api_key":"124TYghFYU9898123PRTNF"}%APIキーはJSON形式のレスポンスとして返されます。上記の例では、キーは124TYghFYU9898123PRTNFです。このキーをコピーして、パスワード管理ツールに保存してください。
Function Hubを使用したカスタムアクションの設定方法
AdaloアプリからFunction Hubの各エンドポイントを呼び出す手順は以下の通りです。
Adaloエディタでアプリを開く
アクションのトリガーとなるコンポーネント、またはスクリーンを選択する
「Custom Action(カスタムアクション)」を追加する
API Base URL(ベースURL)を以下に設定する:
https://functionhub.adalo.comMethod(メソッド)を設定する(エンドポイントの仕様に合わせて POST または GET を選択します。)
特定の商品のURLパスを入力する(例:
/api/math/sort)Headers(ヘッダー)に以下を追加する:
Key:
X-API-KeyValue: あなたのAPIキー
(JSONボディを含むPOSTリクエストの場合のみ)Headersに以下を追加する:
Key:
Content-TypeValue:
application/json
各エンドポイントの説明に従って、BodyまたはURLパラメータを設定する
Response(レスポンス)設定にて、出力フィールド(例:
result)をMagic Textやアプリ内のプロパティに紐付ける(マッピングする)
対応しているエンドポイント
現在、実用的なエンドポイントが限定的に利用可能です。ユーザーの要望に基づき、今後も機能を拡充していきます!
数値のソート
カンマ区切りの数値リストを昇順で並べ替えます。
ユースケース
スコアや評価のリストを並べ替える
価格を安い順から高い順に並べる
コレクション内の数値データをランク付けする
Method
POST
URL
/api/math/sort
Auth(認証)
必須
Request Body(リクエストボディ)
numbers
string
必須
カンマ区切りの整数(例:"5,2,9,1,3")
例
リクエスト:
レスポンス (200):
cURLとAPIキーを使用して、このエンドポイントをテストできます。
数値を並べ替えるカスタムアクションの設定
Method: POST
URL:
/api/math/sortBody:
numbersをカンマ区切りのリストに設定します。データベースから値を取得するには、マジックテキストを使用できます。Output(出力):
resultをマップ化し、ソートされたリストを表示します。
テキストの置換
文字列内の特定の部分文字列をすべて置換します。
ユースケース
ユーザー入力のクリーンアップ(不要な文字の削除)
プレースホルダーテキストを動的な値に置換
表示されるコンテンツから機密性の高い単語を伏せ字にする
Method
POST
URL
/api/string/replace/{string}/{search}/{replace?}
Auth(認証)
必須
URLパラメータ
string
必須
変更する元のテキスト
search
必須
検索対象となる文字列
replace
不要
置換後のテキスト。省略された場合、検索語句は削除されます。
例
単語を置き換える:
単語を削除する(置き換えなし):
文字列を置換するカスタムアクションの設定
Method: POST
URL: マジックテキストを使用して動的にパスを構築する:
/api/string/replace/{YourTextField}/{SearchTerm}/{ReplacementText}Output(出力):
resultをテキストプロパティまたは表示フィールドに割り当てる
テキストの操作
組み込みのオプションのいずれかを使用して、文字列を変換します。
ユースケース
ユーザー名をタイトルケース(
capitalize)に統一するメールアドレスを小文字で保存する
見出しを大文字で表示する
Method
POST
URL
/api/string/convert/{function}/{string}
Auth(認証)
必須
URLパラメータ
function
必須
One of: uppercase, lowercase, capitalize, reverse
string
必須
The text to transform
利用可能な機能
uppercase
すべての文字を大文字に変換する
hello world
HELLO WORLD
lowercase
すべての文字を小文字に変換する
Hello World
hello world
capitalize
各単語の最初の文字を大文字にする
hello world
Hello World
reverse
文字列を逆順にする
hello
olleh
例
エラーレスポンス
関数名が無効な場合:
ステータス: 404
テキストを操作するためのカスタムアクションの設定
Method: POST
URL:
/api/string/convert/capitalize/{YourTextField}—capitalizeを必要な関数に置き換えるOutput(出力):
resultをテキストプロパティに割り当てる
テキストの連結
カンマ区切りのテキストを、スペース区切りの単一の文字列に結合します。
ユースケース
名、姓、および敬称を組み合わせてフルネームを作成する
通り名、都市名、州名、郵便番号のフィールドから住所を作成する
複数のテキストフィールドを1つの表示用文字列に統合する
Method
POST
URL
/api/string/concatenate/{text}
Auth(認証)
必須
URLパラメータ
text
必須
結合するカンマ区切り値(例:hello,world)
空の値は自動的に除外され、各セグメントの先頭と末尾の空白文字が削除されます。
例
テキストを連結するカスタムアクションの設定
Method: POST
URL: 「Magic Text」を使ってパスを作成する:
/api/string/concatenate/{FirstName},{LastName},{Suffix}Output(出力):
resultをテキストプロパティ(例:フルネーム)に割り当てる
時間差
2つの時間の差を計算します。
ユースケース
勤務時間の長さを計算する
2つの予定されたイベントの間隔を表示する
締め切りまでの残り時間を表示する
Method
GET
URL
/api/temporal/between/{startTime}/{endTime}/{unit?}
Auth(認証)
必須
URLパラメータ
startTime
必須
開始時刻は24時間表記(HH:MM、例:09:00)
endTime
必須
終了時刻は24時間表記(HH:MM、例:17:30)
unit
不要
出力単位。デフォルト:minutes。オプション:minutes, hours, seconds, hm
単位オプション
minutes
minutes
合計分数
90
hours
hours
整数時間(切り捨て)
1
seconds
seconds
合計秒数
5400
hm
hours_minutes
H:MM形式の時と分
"1:30"
例
デフォルト(分):
時と分:
時間差を計算するカスタムアクションの設定
Method: GET
URL: 「Magic Text」を使ってパスを作成する:
/api/temporal/between/{StartTimeField}/{EndTimeField}/hmOutput(出力):
hours_minutes(または選択した単位に応じてminutes,hours,seconds)をテキストまたは数値のプロパティにマッピングする
合計値
カンマ区切りの数値のリストの合計を計算します。
ユースケース
注文の明細を合計する
値のリストから累計を計算する
複数のカテゴリにわたるスコアを合計する
Method
POST
URL
/api/math/sum
Auth(認証)
必須
Request Body(リクエストボディ)
numbers
string
必須
カンマ区切りの整数(例:"1,2,3")
例
リクエスト:
レスポンス (200):
Adaloの設定
Method: POST
URL:
/api/math/sumBody:
numbersをカンマ区切りのリストとして設定。データベースから値を取得するには、Magic Textを使用できます。Output(出力):
resultを数値プロパティにマッピングする
数値の平均
カンマ区切りの数値のリストの平均(算術平均)を計算します。
Method
POST
URL
/api/math/average
Auth(認証)
必須
Request Body(リクエストボディ)
numbers
string
必須
カンマ区切りの整数(例:"2,4,6")
例
リクエスト:
レスポンス (200):
Adaloの設定
Method: POST
URL:
/api/math/averageBody:
numbersをカンマ区切りのリストとして設定。データベースから値を取得するには、マジックテキストを使用できます。Output(出力):
resultを数値プロパティにマッピングする
ユースケース
複数のレビューから平均評価を算出する
一連の評価から平均スコアを求める
商品のリストから平均価格を算出する
最小値
カンマ区切りの数値のリストから、最も小さい数値を求めます。
ユースケース
商品のセットの中から最も安い価格を探す
最低のスコアや評価を特定する
在庫がある中で最も早い数量を特定する
Method
POST
URL
/api/math/min
Auth(認証)
必須
Request Body(リクエストボディ)
numbers
string
必須
カンマ区切りの整数(例:"5,3,1")
例
リクエスト:
レスポンス (200):
Adaloの設定
Method: POST
URL:
/api/math/minBody:
numbersをカンマ区切りのリストに設定。データベースから値を取得するには、マジックテキストを使用できます。Output(出力):
resultを数値プロパティにマッピングする
最大値
カンマ区切りの数値のリストから、最大の数値を求めます。
ユースケース
最高入札額または最高売出価格の特定
ランキングにおける最高スコアの特定
会場のリストから最大収容人数の算出
Method
POST
URL
/api/math/max
Auth(認証)
必須
Request Body(リクエストボディ)
numbers
string
必須
カンマ区切りの整数(例:"5,3,1")
例
リクエスト:
レスポンス (200):
Adaloの設定
Method: POST
URL:
/api/math/maxBody:
numbersをカンマ区切りのリストとして設定。データベースから値を取得するには、マジックテキストを使用できます。Output(出力):
resultを数値プロパティにマッピングする
割合
ある数値が別の数値に対して何パーセントを占めるかを計算します。
ユースケース
完了進捗の表示(例:60件のタスクのうち15件完了=25%)
割引率の計算
目標の達成率の表示
Method
POST
URL
/api/math/percentage
Auth(認証)
必須
Request Body(リクエストボディ)
number
numeric
必須
部分の値(例: "50")
total
numeric
必須
全体の値(例: "200")
例
リクエスト:
レスポンス (200):
Adaloの設定
Method: POST
URL:
/api/math/percentageBody: 「部分」の欄には
numberを、「合計」の欄にはtotalを入力してください。データベースから値を取得するには、Magic Text を使用できます。Output(出力):
resultを数値プロパティにマッピングする
ヒントとベストプラクティス
特殊文字のURLエンコード — テキストにスペースや特殊文字が含まれる場合、パスパラメータではURLエンコードが必要です(例:
hello worldはhello%20worldとなります)。Adaloで「Magic Text」を使用する場合、これは自動的に処理されます。表示には
hmを使用する —hm単位は1:30のような人間が読みやすい形式を返します。これはアプリのUIで「所要時間(期間)」を表示するのに最適です。動的テキストには「Concatenate(結合)」を活用する — concatenate エンドポイントを使用すると、Adaloのデータベースにある複数のフィールドを組み合わせて、フルネーム、住所、その他の任意のテキストを作成できます。
1つのアプリにつき1つのキー — Adaloアプリ1つにつき、1つのAPIキーを作成してください。そのアプリ内のすべてのカスタムアクションで同じキーを使用します。
インタラクティブ・ドキュメントでテストする — カスタムアクションを設定する前に、ベースURLの
/docs/apiにアクセスして、ブラウザ上で直接エンドポイントのテストを行うことができます。
Last updated
Was this helpful?