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の各エンドポイントを呼び出す手順は以下の通りです。

  1. Adaloエディタでアプリを開く

  2. アクションのトリガーとなるコンポーネント、またはスクリーンを選択する

  3. Custom Action(カスタムアクション)」を追加する

  4. API Base URL(ベースURL)を以下に設定する:https://functionhub.adalo.com

  5. Method(メソッド)を設定する(エンドポイントの仕様に合わせて POST または GET を選択します。)

  6. 特定の商品のURLパスを入力する(例:/api/math/sort

  7. Headers(ヘッダー)に以下を追加する:

    • Key: X-API-Key

    • Value: あなたのAPIキー

  8. (JSONボディを含むPOSTリクエストの場合のみ)Headersに以下を追加する:

    • Key: Content-Type

    • Value: application/json

  9. 各エンドポイントの説明に従って、BodyまたはURLパラメータを設定する

  10. 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/sort

  • Body: 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

単位オプション

単位
レスポンスキー
説明
例 (09:00 から 10:30)

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}/hm

  • Output(出力): 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/sum

  • Body: 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/average

  • Body: numbersをカンマ区切りのリストとして設定。データベースから値を取得するには、マジックテキストを使用できます。

  • Output(出力): resultを数値プロパティにマッピングする

ユースケース

  • 複数のレビューから平均評価を算出する

  • 一連の評価から平均スコアを求める

  • 商品のリストから平均価格を算出する


最小値

カンマ区切りの数値のリストから、最も小さい数値を求めます。

ユースケース

  • 商品のセットの中から最も安い価格を探す

  • 最低のスコアや評価を特定する

  • 在庫がある中で最も早い数量を特定する

Method

POST

URL

/api/math/min

Auth(認証)

必須

Request Body(リクエストボディ)

パラメータ
要件
説明

numbers

string

必須

カンマ区切りの整数(例:"5,3,1"

リクエスト:

レスポンス (200):

Adaloの設定

  • Method: POST

  • URL: /api/math/min

  • Body: numbersをカンマ区切りのリストに設定。データベースから値を取得するには、マジックテキストを使用できます。

  • Output(出力): resultを数値プロパティにマッピングする


最大値

カンマ区切りの数値のリストから、最大の数値を求めます。

ユースケース

  • 最高入札額または最高売出価格の特定

  • ランキングにおける最高スコアの特定

  • 会場のリストから最大収容人数の算出

Method

POST

URL

/api/math/max

Auth(認証)

必須

Request Body(リクエストボディ)

パラメータ
要件
説明

numbers

string

必須

カンマ区切りの整数(例:"5,3,1"

リクエスト:

レスポンス (200):

Adaloの設定

  • Method: POST

  • URL: /api/math/max

  • Body: 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/percentage

  • Body: 「部分」の欄にはnumberを、「合計」の欄にはtotalを入力してください。データベースから値を取得するには、Magic Text を使用できます。

  • Output(出力): resultを数値プロパティにマッピングする

ヒントとベストプラクティス

  • 特殊文字のURLエンコード — テキストにスペースや特殊文字が含まれる場合、パスパラメータではURLエンコードが必要です(例:hello worldhello%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?