SPIRALは、主にエンタープライズ向けのローコードプラットフォームになります。ローコードプラットフォームなので、プログラミング知識がなくともWebアプリケーションを開発できるのが魅力です。
SPIRALでは、各種データをテーブルに保存します。そのデータはAPI経由でCRUD操作できます。プラットフォーム内部から操作する場合には、専用のSDKが使えるので、より手軽になります。
本記事では、この内部用SDKを利用したデータのCRUD操作の流れを紹介します。
準備
テーブルの作成
今回のテーブルは 内部呼び出しAPI「データベース(レコード)」を使用した疎通確認サンプルプログラム | 記事一覧 | SPIRAL ナレッジサイト を参考に、 疎通確認DB(apiTest) としています。カラム(フィールド)は以下の通りです。
| フィールド | フィールド名 | 差替えキーワード | 属性 |
|---|---|---|---|
| テキストフィールド (32 bytes) | 名前 | name | 入力必須 重複不可 |
| セレクト | セレクト | select | なし セレクト項目: 1:ラベル1 2:ラベル2 3:ラベル3 |
| メールアドレス(大・小文字無視) | メールアドレス | なし |
データ登録を行う処理
以下のコードを開発メニューの カスタムプログラム にて新規作成します。PHPスクリプトに貼り付けたら、実行ボタンを押します。引数は何もなしでOKです。
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/insert 1件
// =======================
// リクエストパラメータのセット
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// 登録するデータの指定
$request->put("data", [
["name"=>"name","value"=>"スパイラル太郎"],
["name"=>"mail","value"=>"test001@example.com"],
["name"=>"select","value"=>"1"]
]);
// APIリクエスト
$response = $api_communicator->request("database", "insert", $request);
?>
このコードはデータの登録を行う処理です。処理を実行すると、以下のようにデータが登録されます。
| 名前 | セレクト | メールアドレス |
|---|---|---|
| スパイラル太郎 | ラベル1 | test001@example.com |
エラーハンドリングについて
エラー時には $response->get("code") の返却値で判断できます。 0 でなければエラーです。以後のコードもすべて同じエラーハンドリングになります。
// レスポンスコード取得
$code = $response->get("code");
// メッセージ取得
$message = $response->get("message");
// エラーハンドリング
if ($code != "0") { // 応答コードが0以外の場合
echo ("エラーが発生しました。(code:" . $code . " message:" . $message . ")\n");
} else { // 応答コードが0の場合
echo ("正常終了。(code:" . $code . ")\n");
print_r($response);
}
データの取得
登録したデータを取得するコードです。 select_columns を使って、取得したいカラムを指定します。
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/select
// =======================
// リクエストパラメータ
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// 取得するフィールドタイトルの指定
$request->put("select_columns",["name","mail","select"]);
// APIリクエスト
$response = $api_communicator->request("database", "select", $request);
?>
以下のような結果が得られれば成功です。
検索条件の指定
検索条件を指定する場合には、以下のようにします。
// 検索条件の指定
$request->put("search_condition",[
["name"=>"select","value"=>"1","logical_connection"=>"or"],
["name"=>"select","value"=>"2","logical_connection"=>"or"]
]);
これは、SQLでいうところの WHERE select = '1' OR select = '2' に相当します。
データの更新
データを更新するスクリプトです。更新内容は data に対して指定します。 name キーで更新対象のカラムを、 value キーで新しい値を指定します。
以下の場合は更新対象を定めていないので、全件更新になります。
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/update
// =======================
// リクエストパラメータのセット
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// 更新するデータの指定
$request->put("data", [
["name"=>"name","value"=>"すぱいらる次郎"],
["name"=>"select","value"=>"2"],
["name"=>"mail","value"=>"update001@example.com"]
]);
// APIリクエスト
$response = $api_communicator->request("database", "update", $request);
?>
更新対象の絞り込み
更新対象のユニークキーである id がわかっている場合には、以下のようにして絞り込みが可能です。
$request->put("id","更新したいレコードのid");
何らかの検索条件を指定する場合には、以下のようにします。
$request->put("search_condition",[
["name"=>"フィールドタイトル","value"=>"検索する値"],
["name"=>"フィールドタイトル","value"=>"検索する値"],
["name"=>"フィールドタイトル","value"=>"検索する値"]
]);
あらかじめ決めておいた抽出ルールを利用する場合には、以下のようにします。
$request->put("select_name","抽出ルール");
削除
データの削除を行うコードです。更新と同様の処理になります。
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/delete
// =======================
// リクエストパラメータ
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// APIリクエスト
$response = $api_communicator->request("database", "delete", $request);
?>
id を指定して削除する場合には、以下のように記述します。
// idの指定
$request->put("id", "2");
// APIリクエスト
$response = $api_communicator->request("database", "delete", $request);
データの一括処理
データは1件ずつも可能ですが、バルクで一括登録も可能です。 columns で指定した順番どおりに、二次元配列で指定します。
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/bulk_insert
// =======================
// リクエストパラメータのセット
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// 挿入するデータの該当フィールドタイトルの配列
$request->put("columns",["name","select","mail"]);
// 登録するデータ
// columnsで指定したフィールド数×登録行数の二次元配列
$request->put("data", [
["スパイラル太郎","1","test001@example.com"],
["すぱいらる次郎","2","test002@example.com"],
["螺旋三郎","3","test003@example.com"]
]);
// APIリクエスト
$response = $api_communicator->request("database", "bulk_insert", $request);
?>
注意点
今回解説したコードは、すべてSPIRALの内部でのみ利用できるものになります。外部から実行はできないので注意してください。
まとめ
今回はSPIRALのデータを内部からCRUD操作する方法を解説しました。一括処理などもできるので、大量のデータも安心して処理できます。
現在、SPIRALではエンジニアβという無料アカウントを配布しています。SPIRALに興味がある型はこちらから試してみてください。
