この記事では、「データの登録→取得→更新→削除」の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利用をご参照ください。