本記事は、OSSのノーコード・ローコード開発ツール「プリザンター」 Advent Calendar 2023 の1日目の記事です。
概要
オープンソースのノーコード・ローコード開発ツール「プリザンター」のシステム間データ連携について、いくつかのパターンがあるのでまとめてみました。
お品書き
- 他システムのAPIをブラウザ上のスクリプトで操作
- 他システムのAPIをサーバスクリプトで操作
- プリザンターのAPIをブラウザ上のスクリプトで操作
- プリザンターのAPIをサーバサイドで操作
- プリザンターのAPIをバッチで操作
- プリザンターのDBを直接操作
- プリザンターに新しいAPIを追加
内容
他システムのAPIをブラウザ上のスクリプトで操作
プリザンターの スクリプト 機能を使用すると、ブラウザ上で管理者が設定した任意のJavaScriptを実行し、他システムのAPIを呼び出すことができます。用途としてはプリザンターの画面に必要となる外部のデータを取得したり、プリザンターの画面にあるデータを外部アプリケーションに送るなどが挙げられます。注意事項としては他システムのAPIキーをブラウザに出力する必要がある点、他システムのCORSの設定が必要となる点です。
他システムのAPIをサーバスクリプトで操作
プリザンターの サーバスクリプト を使用するとサーバサイドに記述したJavaScriptと HTTP Client によって他システムのAPIを呼び出すことができます。ブラウザ上のスクリプトと異なりAPIキーをサーバ側に隠蔽できる点やCORS設定が不要となる点がメリットです。具体例としては 「Redmineとプリザンターを連携してみた」 という記事があります。 注意事項としてはサーバサイドのリソースが消費されるため負荷の高い処理を実装すると、システム全体に影響を及ぼす可能性があります。
プリザンターのAPIをブラウザ上のスクリプトで操作
他システムのHTML上のJavaScriptを使用して、プリザンターの API を呼び出すことができます。用途としてはプリザンターから任意のデータを取得したり、プリザンターに必要なデータを書き込んだりすることができます。プリザンターのAPIキーをJavaScript上に記述する必要があるためAPIを実行するユーザには最低限の権限を付与しておくことをお勧めします。この構成で非公開情報にREAD権限を付与することはお勧めしません。書き込み専用として使用するなどの用途に留めることをお勧めします。この構成を行うにはプリザンターのパラメータ Security.json の AccessControlAllowOrigin を設定する必要があります。
プリザンターのAPIをサーバサイドで操作
JavaやPHPなどのWebアプリケーションのバックエンドでプリザンターの API を呼び出すパターンです。APIキーがクライアントのブラウザに出力されないためセキュアなシステムを実現することができます。企業の問い合わせ窓口やアンケートの収集などの用途が考えられます。
プリザンターのAPIをバッチで操作
定期的にCSVを取り込むといったバッチ処理とプリザンターの API を組み合わせた連携です。プリザンターの公開された API を操作するため、比較的簡単にバッチ処理を実現することができます。注意事項としては10万件を超えるような大量データを入出力する場合には、システムに負荷がかかる点や処理に時間がかかる可能性がある点です。
プリザンターのDBを直接操作
大量データの入出力を短時間に行うためには、プリザンターを使用せずデータベースに直接アクセスして高速にデータを入出力することができます。注意事項としてはデータ登録時の検索インデックスが登録されない点や、操作によってはDBの不整合が起きる可能性がある点です。
プリザンターに新しいAPIを追加
プリザンターにはSQLと組み合わせて 新しいAPIを追加する機能 があります。これを作成することにより、目的の処理を高速に実行するAPIを追加することができます。
おわりに
プリザンターは今後も業務に役立つノーコード・ローコード開発ツールとして進化を続けてまいります。応援よろしくお願いします。皆さん良いクリスマスをお過ごしください。
https://pleasanter.org
GitHubにスターつけてもらえたら嬉しいです。
https://github.com/Implem/Implem.Pleasanter