
こんにちは。CData Software Japan の杉本です。
「SPIRAL ver.1」はスパイラル株式会社が提供する、プログラミング知識を必要としない国産の業務システム構築プラットフォームです。会員管理、フォーム、データベース機能などをノーコード/ローコードで構築できるため、多くの企業で基幹システムや情報系システムの一部として利用されています。
ローコード開発プラットフォーム SPIRAL(スパイラル)® ver.1 | スパイラル株式会社
本記事では、CData Arc と SPIRAL ver.1 を連携させる具体的な方法を、実際の構成例とともにご紹介します。
なお、SPIRAL には「SPIRAL ver.1」と「SPIRAL WebTools」という2つの製品があり、両者は非互換の別製品として位置づけられています。API の仕様も両者で全く異なるため、本記事で紹介する連携方法はSPIRAL ver.1 のAPI を対象としています。
SPIRAL ver.1 専用コネクタはないが、連携は可能
CData Arc には2026年9月現在、SPIRAL ver.1 専用のコネクタは用意されていません。ただし、SPIRAL ver.1 は外部システムからの API アクセス(SPIRAL ver.1 API)を公開しています。
SPIRAL ver.1 API リファレンス
CData Arc の汎用 REST コネクタと Script コネクタ(ArcScript)を組み合わせることで、専用コネクタがなくても連携を実現できます。REST コネクタは任意の HTTP メソッド・ヘッダー・ボディでリクエストを送信できる汎用コネクタです。ArcScript と組み合わせることで、署名生成が必要な API など、連携先の認証方式に応じた動的なリクエスト作成が可能になります。
今回作成するフロー
今回はデータベースからデータ取得を行う API(database/select/request)を利用します。
SPIRAL ver.1 API リファレンス
作成するフローは以下のとおりです。件数が多い場合は一度のリクエストで取得しきれず、複数回の API リクエストが必要になるため、やや応用的な構成になっています。

処理の流れを言葉で追うと、次のようになります。
Script コネクタ(Blog_Script1):認証情報と署名を生成し、1ページ目のリクエスト JSON を作成
REST コネクタ(Blog_REST1):SPIRAL ver.1 API へ POST。受信時(Response イベント)に ArcScript で次ページの有無を判定し、結果をメッセージヘッダーに記録
Branch コネクタ(Blog_Branch1):ヘッダー spiralhasmore を見て分岐
Copy コネクタ(Blog_Copy1):Original を File コネクタ(保存用)、Copy を Script コネクタ(ループ用)へ
Script コネクタ(Blog_Script2):2回目以降のリクエスト JSON を作成し、REST コネクタへ戻す(2 に戻る)
File コネクタ(Blog_File1):取得したレスポンスを指定フォルダに保存
Script コネクタ(Blog_Script1)
Script コネクタでは ArcScript を利用して、SPIRAL ver.1 API へ送るリクエスト JSON ファイルを生成します。

{"spiral_api_token":"[spiral.token]","passkey":"[spiral.passkey]","signature":"[spiral.signature]","db_title":"[spiral.db_title]","lines_per_page":[spiral.lines_per_page],"page":[spiral.page],"select_columns":\[[spiral.select_columns]\],"sort":\[{"name":"[spiral.sort_field]","order":"[spiral.sort_order]"}\]}
テスト実行することで、作成されるJSON ファイルについて確認することが出来ます。

上記のArcScript のポイントについてご説明します。
SPIRAL ver.1 API の認証方式
まず SPIRAL ver.1 API では、リクエストごとに以下の3点をリクエストボディの JSON に含める必要があります。
スパイラルAPIの使い方 SPIRAL PLUS|SPIRAL ver.1 サポートサイト
spiral_api_token | SPIRAL 管理画面で発行するAPI トークン |
passkey | リクエスト時刻のUNIX エポック秒(有効期限15分) |
signature | spiral_api_token とpasskey を、API トークンに対応するシークレットでHMAC-SHA1 署名した16 進数文字列 |
つまり、リクエストのたびに現在時刻ベースの署名を都度生成する必要があり、固定の API キーをヘッダーに設定するだけでは連携できません。ここが CData Arc で連携する上での最初のポイントです。ArcScript では encEncode オペレーションでこの署名を生成できます。
また API トークン・シークレットは Vault に保存し、ArcScript からは vault() 関数で参照するようにしています。認証情報をフロー上に平文で残さないための基本的な対策です。Vault は「設定 > Vault > Vault アイテムの追加」より登録できます。

今回は SpiralApiToken と SpiralApiSecret の2つの Vault アイテムを登録します。Vault の種類は「Encrypted」を選択ください。


各パラメータについて
JSON にはデータ取得のためのオプションパラメータをセットできます。今回は以下のパラメータを変数化してセットしています。
lines_per_page
page
select_columns
sort
それぞれの理由を説明します。
page:初回のリクエストのため 1 を指定しています。
select_columns:取得が必要なカラムを指定します。このパラメータを省略した場合、レスポンスの header/data は id 列のみが返る点に注意してください。id 以外の列が必要な場合は必ず明示的に指定します。
sort:page によるオフセット型のページングは、並び順を指定しないと SPIRAL ver.1 側の内部順序に依存します。ページを取得している間にレコードの追加・削除があると、重複取得や取得漏れが発生するリスクがあるため、sort パラメータで一意なキー(id など)を明示的に指定することを推奨します。
REST コネクタ(Blog_REST1)
REST コネクタでは、本文タイプ「raw」・コンテンツタイプ「JSON」を指定し、SPIRAL ver.1 が要求するヘッダーを設定します。本文タイプに「raw」を指定することで、前段の Script コネクタ(Blog_Script1)で作成した JSON ファイルが、API リクエストの Body としてそのまま送信されます。
設定内容は以下のとおりです。
URL | https://<アカウント固有ドメイン>/api/serviceアカウント固有ドメイン> |
Method | POST |
本文タイプ | raw |
コンテンツタイプ | JSON(application/json) |
X-SPIRAL-API | database/select/request |
Content-Type | application/json;charset=UTF-8 |
Authorization | No Credentials(認証はボディ内で完結するため) |

ページング判定
レスポンスの count(総件数)と、これまでに取得済みの件数を比較し、まだ取得していないレコードが残っていれば page をインクリメントして次のリクエストを組み立て、REST コネクタへループさせます。全件取得できたらヘッダー spiralhasmore を false にしてループを終了します。この継続判定は、REST コネクタのResponse イベントに ArcScript を記述して実装します。

処理の遅延
SPIRAL ver.1 API にはリクエスト回数制限(デフォルトでは1分間に10リクエスト)があるため、制限にかからないように、REST コネクタの高度な設定タブの「処理の遅延」を6 秒とします。

Branch コネクタ(Blog_Branch1)
Branch コネクタでは、メッセージヘッダー spiralhasmore を確認して、再度 API リクエストが必要かどうかを判定します。true の場合は Copy コネクタへ、false(全件取得完了)の場合は File コネクタへ分岐させます。

Copy コネクタ(Blog_Copy1)
Copy コネクタに遷移した場合は、再度 API リクエストが必要になります。ただし、いま取得したレスポンスも保管する必要があるため、Original を File コネクタに連携して保存し、Copy を後続の Script コネクタに連携して次ページのリクエストを行います。
注意点として、このようなループを含むフローを作成する場合は、必ず Copy 側をループ先に向けてください。CData Arc のメッセージファイルは一意なメッセージ ID を持っており、同じメッセージ ID のメッセージが同じコネクタを再度通過するとメッセージの重複として扱われます。Copy コネクタで複製されたメッセージには Original とは異なる新しいメッセージ ID が振られるため、こちらをループさせる必要があります。
Script コネクタ(Blog_Script2)
Script コネクタでは、2回目以降の API リクエストに必要な JSON ファイルを生成します。Blog_Script1 との違いは次の2点だけです。

{"spiral_api_token":"[spiral.token]","passkey":"[spiral.passkey]","signature":"[spiral.signature]","db_title":"[spiral.db_title]","lines_per_page":[spiral.lines_per_page],"page":[spiral.page],"select_columns":\[[spiral.select_columns]\],"sort":\[{"name":"[spiral.sort_field]","order":"[spiral.sort_order]"}\]}
File コネクタ(Blog_File1)
File コネクタでは、SPIRAL ver.1 API で取得したデータ(API のレスポンス JSON)を指定のフォルダに保存します。

保存したファイルを利用して、別の SaaS にデータを連携したり、データベースへ取り込んだりすることが可能です。
まとめ
CData Arc に専用コネクタが用意されていない SaaS/API 連携先であっても、汎用 REST コネクタと ArcScript を組み合わせることで、署名生成が必要な認証方式やページング処理を含む複雑な連携を実現できます。SPIRAL ver.1 のように「リクエストごとに動的な署名を要求する」API との連携は、まさに CData Arc の ArcScript の柔軟性が活きる好例です。
CData Arc でのAPI 連携についてご不明な点があれば、お気軽にCData Software Japan サポートまでお問い合わせください。
CData - サポートフォーム
この記事では CData Arc™ 2026 - 26.3.9736.0 を利用しています