この記事では、「データの登録→取得→更新→削除」のAPIの疎通確認ができるサンプルプログラムです。
初めてPHPを利用してAPIでデータを操作する方は参考にしてください。
初めてPHPを利用してAPIでデータを操作する方は参考にしてください。
はじめに
内部呼び出し(スパイラル内部で動作させる場合)を利用した疎通確認の方法です。
この方法では、APIトークンおよびAPIシークレットを記述することなく簡易にAPIを実行できます。
アカウント内APIの設定を「ON」に変更する必要があるため、事前に アカウント内APIをご確認ください。
PHPは、カスタムプログラムの即時実行を利用して動作・疎通確認をします。
カスタムプログラムでの即時実行については、 カスタムプログラムでのPHP利用をご参照ください。
この方法では、APIトークンおよびAPIシークレットを記述することなく簡易にAPIを実行できます。
アカウント内APIの設定を「ON」に変更する必要があるため、事前に アカウント内APIをご確認ください。
PHPは、カスタムプログラムの即時実行を利用して動作・疎通確認をします。
カスタムプログラムでの即時実行については、 カスタムプログラムでのPHP利用をご参照ください。
疎通確認用のDB作成
APIの疎通確認を行うためDBを作成します。
DBの作成方法に関しては 通常DBをご参照ください。
▼疎通確認DB-基本設定
▼疎通確認DB-構成設定
DBの作成方法に関しては 通常DBをご参照ください。
▼疎通確認DB-基本設定
| DB名 | タイトル | タイプ | レコード数 |
|---|---|---|---|
| 疎通確認DB | apiTest | 通常DB | 10 |
▼疎通確認DB-構成設定
| フィールド | フィールド名 | 差替えキーワード | 属性 |
|---|---|---|---|
| テキストフィールド(32 bytes) | 名前 | name | 入力必須 重複不可 |
| セレクト | セレクト | select | 属性なし セレクト項目 1:ラベル1 2:ラベル2 3:ラベル3 |
| メールアドレス(大・小文字無視) | メールアドレス | 属性なし |
データの登録
「疎通確認DB」に下記の内容を登録するAPIを実行します。
▼登録するデータ
APIリファレンス
▼登録するデータ
| 名前 | セレクト | メールアドレス |
|---|---|---|
| スパイラル太郎 | ラベル1 | test001@example.com |
PHP データ登録
<?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);
// レスポンスコード取得
$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);
}
?>
データの取得
「疎通確認DB」より、レコードを取得します。
※ 今回は検索条件を指定していないため全件取得となります。
APIリファレンス
※ 今回は検索条件を指定していないため全件取得となります。
PHP データ取得
<?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);
// レスポンスコード取得
$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);
}
?>
補足1
取得するフィールドの種類は、「select_columns」で定めています。
取得するフィールドの種類
// 取得するフィールドタイトルの指定
$request->put("select_columns",["フィールドタイトル","フィールドタイトル","フィールドタイトル"]);
補足2
取得するデータは、「抽出ルール」「検索条件」を指定して絞り込むことができます
抽出ルールでの絞り込み
$request->put("select_name","抽出ルール");
検索条件での絞り込み
$request->put("search_condition",[
["name"=>"フィールドタイトル","value"=>"検索する値"],
["name"=>"フィールドタイトル","value"=>"検索する値"],
["name"=>"フィールドタイトル","value"=>"検索する値"]
]);
データの更新
「疎通確認DB」に下記の内容を更新するAPIを実行します。
※ 今回は更新対象の条件を指定していないため全件更新となります。
▼更新するデータ
APIリファレンス
※ 今回は更新対象の条件を指定していないため全件更新となります。
▼更新するデータ
| 名前 | セレクト | メールアドレス |
|---|---|---|
| すぱいらる次郎 | ラベル2 | update001@example.com |
PHP データ更新
<?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);
// レスポンスコード取得
$code = $response->get("code");
// メッセージ取得
$message = $response->get("message");
// エラーハンドリング
if ($code != "0") { // 応答コードが0以外の場合
echo ("エラーが発生しました。(code:" . $code . " message:" . $message . ")\n");
} else { // 応答コードが0の場合
//更新した数を取得
$count = $response->get("count");
if($count == "0"){
echo("エラー:更新できる値がありません\n");
}else{
echo ("正常終了。(code:" . $code . ")\n");
print_r($response);
}
}
?>
補足
更新するデータは、「id」「抽出ルール」「検索条件」で絞り込むことができます。
idでの絞り込み
$request->put("id","更新したいレコードのid");
抽出ルールでの絞り込み
$request->put("select_name","抽出ルール");
検索条件での絞り込み
$request->put("search_condition",[
["name"=>"フィールドタイトル","value"=>"検索する値"],
["name"=>"フィールドタイトル","value"=>"検索する値"],
["name"=>"フィールドタイトル","value"=>"検索する値"]
]);
データの削除
「疎通確認DB」のレコードを削除するAPIを実行します。
※ 今回は削除対象の条件を指定していないため全件削除となります。
APIリファレンス
※ 今回は削除対象の条件を指定していないため全件削除となります。
PHP データ削除
<?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);
// レスポンスコード取得
$code = $response->get("code");
// メッセージ取得
$message = $response->get("message");
// エラーハンドリング
if ($code != "0") { // 応答コードが0以外の場合
echo ("エラーが発生しました。(code:" . $code . " message:" . $message . ")\n");
} else { // 応答コードが0の場合
//削除した数を取得
$count = $response->get("count");
if($count == "0"){
echo("エラー:削除できる値がありません\n");
}else{
echo ("正常終了。(code:" . $code . ")\n");
print_r($response);
}
}
?>
補足
削除するデータは、更新と同じく「id」「抽出ルール」「検索条件」で絞り込むことができます。
データの複数行一括登録
「疎通確認DB」に下記の内容を一括登録するAPIを実行します。
▼登録するデータ
APIリファレンス
▼登録するデータ
| 名前 | セレクト | メールアドレス |
|---|---|---|
| スパイラル太郎 | ラベル1 | test001@example.com |
| すぱいらる次郎 | ラベル2 | test002@example.com |
| 螺旋三郎 | ラベル3 | test003@example.com |
PHP データの複数行一括登録
<?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);
// レスポンスコード取得
$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);
}
?>
補足
「columns」は挿入するデータの該当フィールドタイトルの配列です。
登録するデータである「data」の配列と各行の各列と数が一致する必要があります。
指定していないフィールドは、「NULL(空)」で登録されます。
登録するデータである「data」の配列と各行の各列と数が一致する必要があります。
指定していないフィールドは、「NULL(空)」で登録されます。
検索条件を指定したデータの取得
「疎通確認DB」より、レコードを取得します。
今回は検索条件として、セレクト項目が「ラベル1」または「ラベル2」のデータを取得します。
APIリファレンス
今回は検索条件として、セレクト項目が「ラベル1」または「ラベル2」のデータを取得します。
PHP データ取得
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/select
// =======================
// リクエストパラメータ
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// 取得するフィールドタイトルの指定
$request->put("select_columns",["name","mail","select"]);
// 検索条件の指定
$request->put("search_condition",[
["name"=>"select","value"=>"1","logical_connection"=>"or"],
["name"=>"select","value"=>"2","logical_connection"=>"or"]
]);
// APIリクエスト
$response = $api_communicator->request("database", "select", $request);
// レスポンスコード取得
$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);
}
?>
補足
検索条件の「search_condition」で指定している「logical_connection」は
設定しない場合「and」となります。
今回は「select」の項目を二つ検索するため、「or」を指定しています。
※ 異なるフィールドの場合は「or」を指定していても、「and」と指定されます。
設定しない場合「and」となります。
今回は「select」の項目を二つ検索するため、「or」を指定しています。
※ 異なるフィールドの場合は「or」を指定していても、「and」と指定されます。
データの複数行一括更新
「疎通確認DB」に下記の内容を更新するAPIを実行します。
複数行更新する際は、対象をキーとなるフィールドで特定し更新をします。
※ キーとなるフィールドは入力必須かつ重複不可のフィールドのみ指定可能です。
▼更新するデータ
APIリファレンス
複数行更新する際は、対象をキーとなるフィールドで特定し更新をします。
※ キーとなるフィールドは入力必須かつ重複不可のフィールドのみ指定可能です。
▼更新するデータ
| 名前(更新対象を特定) | セレクト | メールアドレス |
|---|---|---|
| スパイラル太郎 | ラベル3 | update001@example.com |
| すぱいらる次郎 | ラベル2 | update002@example.com |
| 螺旋三郎 | ラベル1 | update003@example.com |
PHP データの複数行一括更新
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/bulk_update
// =======================
// リクエストパラメータ
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// 更新結果が0件の場合にエラーの動作
$request->put("on_record_not_found", "error");
// 更新対象を特定するためのフィールド、(重複不可・入力必須)
$request->put("key","name");
// 挿入するデータの該当フィールドタイトルの配列
// keyで指定したカラムも設定
$request->put("columns",["name","select","mail"]);
// 更新するデータの指定
// columnsで指定したフィールド数×更新行数の二次元配列
// キーの値は更新対象を定める
$request->put("data", [
["スパイラル太郎","3","update001@example.com"],
["すぱいらる次郎","2","update002@example.com"],
["螺旋三郎","1","update003@example.com"]
]);
// APIリクエスト
$response = $api_communicator->request("database", "bulk_update", $request);
// レスポンスコード取得
$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);
}
?>
補足
更新するデータを特定するフィールドは、「key」にて定めています。
また、「key」で設定した値は「columns」に指定する必要があります。
また、「key」で設定した値は「columns」に指定する必要があります。
idを指定したデータの削除
「疎通確認DB」のレコードを削除するAPIを実行します。
今回は検索条件として、id「2」を指定し削除します。
APIリファレンス
今回は検索条件として、id「2」を指定し削除します。
PHP idを指定したデータの削除
<?php
//APIコミュニケーターのセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();
// =======================
// API/delete
// =======================
// リクエストパラメータ
$request = new SpiralApiRequest();
// DBの指定
$request->put("db_title", "apiTest");
// idの指定
$request->put("id", "2");
// APIリクエスト
$response = $api_communicator->request("database", "delete", $request);
// レスポンスコード取得
$code = $response->get("code");
// メッセージ取得
$message = $response->get("message");
// エラーハンドリング
if ($code != "0") { // 応答コードが0以外の場合
echo ("エラーが発生しました。(code:" . $code . " message:" . $message . ")\n");
} else { // 応答コードが0の場合
//削除した数を取得
$count = $response->get("count");
if($count == "0"){
echo("エラー:削除できる値がありません\n");
}else{
echo ("正常終了。(code:" . $code . ")\n");
print_r($response);
}
}
?>
補足
idが異なるとデータを削除できない、または削除したいデータと違うデータを削除してしまう場合があります。
削除する場合は、検索条件と削除したいデータがあっているかを確認のうえ実行してください。
削除する場合は、検索条件と削除したいデータがあっているかを確認のうえ実行してください。
最後に
不具合やほかのやり方が知りたい等あれば、下記の「コンテンツに関しての要望はこちら」からご連絡ください。
また、ページなどでPHPを利用する場合は、 スパイラルのWeb機能でのPHP利用をご参照ください。
また、ページなどでPHPを利用する場合は、 スパイラルのWeb機能でのPHP利用をご参照ください。