お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
1. このページの内容
カスタム API について、および Deluge 関数を使ってその処理を定義し、それを API として公開して外部プラットフォームから呼び出す方法について説明します。これにより、Zoho Creator を含む複数のプラットフォーム間で業務効率を最大化し、外部システム間で複雑な処理をプログラミングする際の難易度を下げることができます。
2. 提供状況
3. 概要
カスタム API(カスタム Application Programming Interface)は、開発者が独自の API を作成し、自身のサービスから外部システム、アプリケーション、サービスに公開したい機能を定義できるインターフェイスです。これらの API により、異なるソフトウェアシステム間でシームレスに通信し、データを共有できます。サードパーティのサービスやプラットフォームが提供する標準 API と異なり、カスタム API はアプリケーションの要件に合わせて個別に開発・調整できます。また、リアルタイム更新や、さまざまなソースからのパーソナライズされたコンテンツ取得などの機能を有効にすることで、ユーザー体験を向上させることもできます。
4. Creator におけるカスタム API
Creator では、カスタム API を使用して、アプリケーション内の既存の
関数を活用し、要件に合わせた特定の機能を実現できます。
Developer API(REST API)が呼び出し時に固定(事前定義済み)の操作のみを実行するのに対し、カスタム API は外部プラットフォームからの呼び出しに応じて、ユーザー定義の処理を実行するようスクリプト化できます。つまり、ユーザーは、サードパーティアプリケーションから Creator アプリケーションのデータに対して、事前定義された操作以外の処理も、関数をカスタム API として呼び出すことで実行できます。このカスタマイズにより、作成した API を組織のニーズに正確に合わせることができ、パフォーマンスと効率を最適化できます。
カスタム API を使用すると、アプリケーションをサードパーティサービスと連携し、外部リソースを活用してアプリケーションの機能を拡張することもできます。さらに、これらの API はビジネスロジックを一元的にカプセル化するため、保守や更新が容易になります。つまり、ビジネスプロセスの変更は API 内で実装でき、アプリケーション全体を変更する必要がありません。
Creator では、カスタム API は
カスタム APIビルダーで作成および管理できます。このビルダーでは、(処理内容が定義されている)
既存のDeluge 関数を使用して、API として公開する処理を定義し、自動生成されるエンドポイント UR
L を使って外部プラットフォームから API を呼び出せます。
カスタム API を作成・管理するためのカスタム API ビルダーにアクセスできるのは、スーパー管理者と管理者のみです。
カスタム API を呼び出した後は、API ヒット数のステータス(完了/失敗)と、そのエラーログをAPI 概要ページで確認できます。
メモ:
- API ヒット数は、料金の観点では REST API のヒット数とは別にカウントされます。
- 現在は、すでに設定済みのDeluge 関数のみをカスタム API として使用できます。つまり、クラウド関数として作成した Java や NodeJS のスクリプトを、カスタム API として呼び出すことはできません。
4。1 Creator におけるカスタム API の機能
- カスタム API を使用すると、通常は Creator 内でのみ可能な操作を外部から呼び出すことができます。例として、プッシュ通知の送信、AI フォーム項目からの結果取得、その他のデータ関連処理の実行などがあります。
- カスタム API 内で、Creator 独自のDeluge 関数をそのまま呼び出せるため、Deluge 関数を書き直したり、別のカスタム API を作成したりする必要がありません。
- 認証メカニズムを実装して、安全なカスタム API を構築できます。これにより、データアクセスを制御・保護し、不正アクセスやデータ漏えいのリスクを軽減できます。
- 1 回の関数実行で複数のロジック処理をまとめて実行できます。
- 多数の API コールや外部スクリプトを通じて大規模な処理を実行する場合でも、カスタム API のログを 1 か所でまとめて分析・管理できます。
4。2 Creator でカスタム API はどのように構築されるか
- カスタム API ビルダー: セキュアで簡単に作成できるインターフェイスで、すぐに利用可能なカスタム APIを作成でき、Creator と外部システム間のデータ連携を実現します。
- Deluge 関数: 既存のDeluge 関数をカスタム API から呼び出すことができます。
4。3 Creator におけるカスタム API の構成要素
- 基本情報
- エンドポイント URL
- ユーザースコープ
- Request
- Function
- Response
基本情報
「基本情報」タブでは、カスタム API の定義を行います。カスタム API の名前を指定し、エンドポイント URL で使用されるリンク名を追加し、カスタム API の目的を記述できます。
カスタム API に名前を付ける際は、その機能を表し、覚えやすく、内容が分かりやすい名前を付けることが重要です。
Endpoint URL
API エンドポイント URL とは、カスタム API が外部システムとの通信のために公開する特定の URL を指します。この URL は、ユーザーが API で提供される特定の機能にアクセスするためのパスを定義します。Creator では、カスタム API のエンドポイント URL は、指定したAPI リンク名に基づいて、以下の形式で自動生成されます。この URL により、ユーザーは API の具体的な目的を識別できます。次のセクションで説明する場所から URL をコピーして、必要な箇所で使用できます。
エンドポイント URL の機能
1.エンドポイント URL を取得する方法
エンドポイント URL は、次の場所からコピーできます。
- 該当するカスタム API カード
- 詳細ビュー
次の動画では、エンドポイント URL をコピーできる場所を示しています。
2. エンドポイント URL にアクセスできるユーザー
メモ: 権限のないユーザーがエンドポイント URL を使ってカスタム API を呼び出そうとした場合、システムレスポンス(Creator のレスポンス)が表示されます。
3. エンドポイント URL をどこで呼び出せるか
任意のサードパーティサービスで、この URL を使用してカスタム API を呼び出すことができます。
メモ:
- カスタム API を呼び出すには、エンドポイント URL をコピーして、必要な外部プラットフォームに貼り付ける必要があります。
- カスタム API のリンク名を編集したり、ユーザースコープや認証方法を変更した場合、エンドポイント URL のプレビューはカスタム APIビルダー内で自動的に更新されます。ただし、すでにエンドポイント URL を設定している箇所は手動で更新する必要があります。エンドポイント URL を更新せずにカスタム API を呼び出した場合は、システムレスポンス(エラー)が返されます。
Request
「Request」タブでは、リクエスト本文で使用するメソッド、認証方式、コンテンツタイプを指定できます。
- リクエストメソッド
- 認証方式
- ユーザー範囲
- コンテンツタイプ
カスタム API のリクエストメソッド
これらのメソッドを使用して、API リクエストをトリガーしたときに実行したい処理の種類を定義できます。カスタム API ビルダーでは、次の 4 つのメソッドから選択できます: GET、POST、PUT、DELETE。
- GET: 指定したエンドポイント URL からデータを要求して取得するためのメソッドです。GET リクエストでは、データは通常、URL の末尾に付加されたクエリパラメーターとして送信されます。
- POST: 指定したエンドポイント URL に処理対象のデータを送信するためのメソッドです。POST リクエストでは、データは通常、JSON やフォームデータなどの形式でリクエスト本文に含めて送信されます。この場合、データは URL には付加されません。
- PUT: 指定した URL 上の既存リソースを更新または置き換える、あるいは新しいリソースを作成するためのメソッドです。
- DELETE: 指定した URL 上のサーバーから特定のリソースを削除するためのメソッドです。
認証方式
Creator では、認証タイプとして次のいずれかを選択できます。
- OAuth2 - 既定では、'Open Authorization' を意味する OAuth により、API コールの認可と認証を行います。Creator アプリケーションが外部リソースへ安全にアクセスできるようにし、ユーザーがログインするたびにユーザー名とパスワードを求める手間を軽減します。このオプションを選択した場合、ユーザー範囲で指定したユーザーのみがカスタム API にアクセスして呼び出すことができます。
- PublicKey - このオプションを選択した場合、誰でもカスタム API にアクセスして呼び出すことができます。
Info: エンドポイント URL には、公開キーをパラメーターとして付加する必要があります。
ユーザー範囲
スーパー管理者または管理者は、ユーザー範囲を使用してユーザーに付与するアクセス制御レベルを定義できます。つまり、特定のユーザーに対してエンドポイント URL へのアクセスと API の呼び出しを許可できます。次のいずれかのアクセス権を付与できます。
- Admin only - スーパー管理者と管理者
- 選択したユーザー - スーパー管理者、管理者、およびユーザー(このオプションを選択したときに表示される入力項目でメールアドレスを指定)
- ポータルユーザー - アプリケーションのポータルに追加され、処理タブで選択されたポータルの承認済みポータルユーザー
- すべて - Creator アカウントのユーザー タブにいるすべての有効なユーザー。ポータルユーザーは含まれません。
メモ:
- カスタム API のユーザー範囲を選択したユーザーからAdmin only、ポータルユーザー、またはすべてに変更すると、これまで追加していたユーザーはすべて削除されます。
- ポータルユーザーをユーザー範囲として選択した場合、カスタム API はウィジェット内からのみ呼び出すことができます。詳細はこちら
コンテンツタイプ
メモ: コンテンツタイプを選択できるのは、POST および PUT メソッドのみです。
コンテンツタイプは、Creator アプリケーションと外部サービス間でリクエストまたはレスポンスとして送受信されるデータの形式と構造を指定するために使用されます。これにより、外部サービスはリクエストデータをどのように解釈すべきかを理解できます。Creator では、次の 2 つの形式からコンテンツタイプを選択できます。
- Application/JSON: このコンテンツタイプを選択すると、API リクエスト内のデータが JSON(JavaScript Object Notation)形式であることを示します。これにより、外部サービスはリクエスト本文内のデータが JSON 形式であり、それに応じて処理する必要があることを認識します。
JSON は、データオブジェクト、配列、キーと値のペアを表現するためによく使用される汎用的なデータ交換形式であり、人間にも機械にも読みやすい形式です。クライアントとサーバー間で構造化データを送受信する際によく使用されるため、API 通信に最適な形式です。
- Multipart/form-data: このコンテンツタイプは、ファイルなどのバイナリデータやテキストデータを外部サービスに送信する API リクエストで使用されます。multipart/form-data リクエストでは、データは複数のパートに分割され、各パートは独自のコンテンツタイプとヘッダーを持ちます。これにより、データ本体だけでなく、ファイル名、項目名、各パートのコンテンツタイプなどの追加情報も含めることができます。パート同士を区切るためにバウンダリ文字列が使用され、この文字列は各パートの開始位置と終了位置を示すためにリクエストヘッダーで指定されます。
Multipart/form-data は、ユーザーがファイルをアップロードできる API エンドポイントを作成する場合や、ファイルアップロード項目を含むフォームを扱う場合によく使用されます。ファイル入力項目を含むフォームをユーザーが送信すると、そのフォームに紐づくカスタム API が呼び出され、外部サーバーにデータを送信するための 'multipart/form-data' リクエストが生成されます。
メモ:
- Multipart/form-data では JSON のような入れ子構造のデータは扱えず、個々の「キーと値」のペアのみを含みます。
- JSON と異なり、1 つのキーに対して複数の値を持つことができます。
Application/JSON コンテンツタイプを選択した場合、引数タイプとして次の 2 つの設定のいずれかを選択できます。
- キーと値: このタイプでは、API エンドポイントに入力パラメーターをキーと値のペアとして渡します。少数の、名前付きパラメーターを API リクエストで渡す必要がある場合に適しています。
サンプルリクエスト:
上記の例では:
- '名前'、'年齢'、'メール' がキーです。
- 'John'、30、'john@zylker.com' がそれぞれの値です。
- Entire JSON: このタイプでは、必要なキーと値のペアをすべて含む、完全で構造化された JSON オブジェクト全体を 1 つの引数として渡します。Webhook コールを処理する場合などにこの方法を使用できます。
サンプルリクエスト:
- {
- 'ユーザー':{
- 'id':12345,
- '名前':'Alisa',
- 'メール':'alisa@zylker.com',
- '年齢':28,
- '住所':{
- '町名・番地':'123 Main St',
- '市区町村':'Anytown',
- '国':'Zylkerland'
- },
- '注文':[
- {
- 'order_id':1001,
- 'total_amount':75。50,
- 'ステータス':'納品済み'
- },
- {
- 'order_id':1002,
- 'total_amount':102。20,
- 'ステータス':'保留中'
- }
- ]
- },
- 'ステータス':'完了',
- 'メッセージ':'ユーザー data retrieved successfully'
- }
上記の例では:
- JSONレスポンスには、さまざまな入れ子構造の要素が含まれています。
- 'ユーザー' には、ID、名前、メール、年齢、住所、注文リストなど、ユーザーに関する情報が含まれています。
- '住所' はユーザー詳細内の入れ子オブジェクトで、住所に関する情報を含みます。
- '注文' は、ユーザーが行った複数の注文を表すオブジェクトを含む配列で、各オブジェクトには注文 ID、合計金額、ステータスなどの属性があります。
- 'ステータス' と 'メッセージ' は、API リクエスト/レスポンス全体のステータスに関する追加情報を提供します。
このカスタム API で Entire JSON を選択する場合は、文字列データ型の引数を 1 つだけ指定し、その中で各キーが特定の値に関連付けられるようにしてください。
レスポンス
このタブでは、レスポンスタイプとして 標準 または カスタムレスポンスのいずれかを選択できます。
- 標準レスポンス: このレスポンスでは、標準のステータスコードが返されます。このオプションを選択すると、下部にサンプルレスポンスが表示されます。

- カスタムレスポンス: このレスポンスでは、要件に応じてカスタムのステータスコードと、それに対応するレスポンスコードを定義・指定できます。

メモ:
- 各ステータスコードにつき、最大50 個のレスポンスコードまで指定できます。
- カスタムレスポンスコードは最大 4 桁まで指定できます。
- カスタムコードを指定する場合、呼び出されるDeluge 関数の返却型はMapである必要があります。
- 指定したレスポンスコードと、それに対応する説明メッセージ
を Deluge 関数内でマッピングする必要があります。
Function
処理タブでは、カスタム API が呼び出されたときに実行されるDeluge関数を含む Creator アプリケーションと名前空間を選択できます。
- アプリケーションは、現在属している環境(Development または Stage)とともに一覧表示されます。
- Deluge 関数を作成する際は、適切な名前空間と関数名を指定することを推奨します。これにより、カスタム API の処理を定義しやすくなります。
- Deluge 関数に機密性の高い処理を含める場合や、ユーザー スコープを通じてカスタム API の呼び出し権限を付与する場合は、十分に注意することを推奨します。
概要
このタブでは、カスタム API の作成を完了する前に、カスタム API の詳細を確認できます。前のタブで必須の詳細を追加したあと、概要、リクエストパラメーター、レスポンス本文セクションに表示される API の詳細を確認できます。修正が必要な場合は、戻って編集できます。問題なければ、そのままカスタム API を保存できます。
カスタム API を作成して保存前にページを終了した場合、そのカスタム API は下書きとして保存されます。
カスタム API を正常に作成したあと、概要タブで、そのカスタム API の基本情報、使用されているアプリケーション、および作成・更新の詳細を確認できます。
API ログ
API Hitsタブでは、API を呼び出したユーザーごとの API ヒット数、ログの日付と時刻、ステータスコード、API のステータス(完了または失敗)を確認できます。さらに、API ログは毎日、毎週、毎月といった期間別に表示できます。
- API ログには、初期設定で過去 30 日間のログが表示され、最大で過去 60 日間までさかのぼって表示できます。
- API ヒットを表示できるのはスーパー管理者と管理者のみです。一般ユーザーは API ヒットを表示できません。
カスタム API を呼び出すためのスコープ
|
Method
|
Scope
|
|
GET、POST、PUT、DELETE
|
Zohocreator.customapi.execute
|
5. 動作イメージ
たとえば、学生、教師、保護者、事務・非教職員向けに個別のタブを持つSchool Managementアプリケーションを作成しているとします。アプリ管理者として、スクールバスに搭載されたバス追跡 IoT デバイスからのデータを処理する必要があります。このデバイスは、スクールバスの運転手が利用できます。ここでは、次の 2 つの要件があるとします。
- 運行開始前に、運行エリア内にいる事務・非教職員、学生、非教職員の送迎先住所を取得する。
- 各運行終了時に、学生の出欠情報と平均運行速度を送信する。
上記を実現するには、通常少なくとも5 つの APIを呼び出す必要があります。
- 3 つのデータ取得 APIを使用して、3 つの個別レポートから住所を取得します。
- 2つの データ追加 APIを使用して、運行に関する詳細を追加し、その日の出欠情報をデータとして登録します。
さらに、欠席した学生のデータを取得し、該当する保護者に SMS 通知を送信する必要があります。
作成する API の数を減らしつつ同じ機能を実現するには、
カスタム API を作成し、カスタム API 呼び出し時に実行される、複合ロジックを持つ既存の Deluge 関数を利用できます。
下記の動画では、3 つの個別レポートから住所を取得するカスタム API の実行例を紹介しています。
6. ユースケース
- 病院管理: たとえば、クリニックを運営しており、Creator を使ってHospital Managementアプリケーションを作成しているとします。患者が装着しているセンサー付き医療機器から重要な情報を取得し、医師がすぐに通知を受けてバイタルを監視し、必要に応じて医療支援を提供できるようにしたいとします。この場合、心拍数、血圧、酸素濃度などの各種バイタルを考慮し、異常値が検出されたときに呼び出されるカスタム API を設定できます。デバイスは API リクエストを通じて、担当医師の空き状況に基づき、該当する医師にモバイル通知としてこれらの詳細を送信します。担当医師には、Creator 上でポップアップフォームを表示し(軽度の緊急時を想定)、治療担当スタッフに対する医療アドバイスを送信できるようにできます。また、医師はすぐに診察が必要かどうかを選択し、最短の予約枠を確保できます。患者は、API レスポンスを通じて、処方された医療アドバイスと(該当する場合は)予約の詳細を受け取ります。このデータは、Appointment 予約フォームおよびPatient 詳細フォームにも追加できます。
- 承認管理: たとえば、Creator を使ってプロジェクト Managementアプリケーションを作成しているとします。従業員は外部サービス上で提案書ドキュメントを作成し、それをあなた(管理者)が承認する必要があります。さらに、ドキュメントが承認されるたびに Creator アプリケーションにデータを追加し、却下されたドキュメントのデータも管理したいとします。この場合、外部サービスから承認用にドキュメントが送信されたときに呼び出されるカスタム API を作成できます。これにより、Creator 内の承認ワークフローがトリガーされ、ドキュメントの承認プロセスが開始され、ドキュメントのステータスが「承認済み」に変更されます。プロジェクト 詳細レポートとQuote 詳細レポートに、それぞれデータが追加されます。ドキュメントが却下された場合は、ドキュメントのステータスが「却下済み」に更新され、その後、プロジェクト 詳細レポートとドキュメント フィードバックレポートにデータが追加されます。
7. カスタム API 作成のナビゲーションガイド
Creator アカウントの
ホームページで、
Microservicesセクションに移動し、
カスタム APIタブを選択します。次に、
+ カスタム API を作成をクリックします。
カスタム API ビルダーが表示されます。
カスタム API を作成し、その機能を自社の業務にどのように活用できるかを確認してください。
8. 注意点
- カスタム API のリンク名には、!@#$%^&*.> などの特殊文字を含めることはできません。
- カスタムレスポンスのステータスコードは、100 ~ 599の範囲で指定できます。
- カスタムレスポンスのレスポンスコードは1 ~ 9999の範囲で指定する必要があり、!@#$%^&*.> などの特殊文字を含めることはできません。
- カスタム API ビルダーを保存せずに閉じた場合でも、変更内容は下書きとして保存され、Microservices > カスタム API > 対象のカスタム API カードからいつでも編集を再開できます。
- 無効な API を呼び出した場合、空のレスポンスが返されます。つまり、無効な API を呼び出すと API ログには記録されますが、API ヒットとしてはカウントされません。
- カスタム API で使用中の関数を削除する前に、その関数に関連付けられているカスタム API を削除しておく必要があります。
- カスタム API の作成と管理
- カスタム API ステータスコード
- Creator の REST API