Created
October 27, 2017 01:05
-
-
Save ykws/cf8411e1e64555b9658d640ac4c00dd8 to your computer and use it in GitHub Desktop.
api-database_operations.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* [ 概要 ] | |
* スパイラルのAPIを使ったサンプルプログラムです。 | |
* | |
* [ サンプルで行う事 ] | |
* - データベースの検索、レコード更新、レコード削除 | |
* | |
* UTF8で保存してください。 | |
*/ | |
/** | |
* [サンプルを動かすための準備] | |
* | |
* 1. PHPにcurlライブラリが組み込まれている必要があります。 | |
* 参考:http://www.php.net/manual/ja/intro.curl.php | |
* | |
* 2. スパイラルの操作画面の「DBグループ」「通常DB管理」で、以下のような構成でDBを発行します。 | |
* | |
* DBタイトル: | |
* member | |
* | |
* フィールド: | |
* No1 フィールド名 :登録日時 | |
* フィールドタイプ:登録日時 | |
* 差替えキーワード:registDate | |
* | |
* No2 フィールド名 :メールアドレス | |
* フィールドタイプ:メールアドレス(大・小文字を無視) | |
* 差替えキーワード:email | |
* | |
* No3 フィールド名 :パスワード | |
* フィールドタイプ:メッセージダイジェスト(SHA256) | |
* 差替えキーワード:pass | |
* | |
* No4 フィールド名 :氏名 | |
* フィールドタイプ:テキストフィールド(64 bytes) | |
* 差替えキーワード:name | |
* | |
*/ | |
// ロケータのURL (変更の必要はありません) | |
$locator = "http://www.pi-pe.co.jp/api/locator"; | |
// スパイラルの操作画面で発行したトークンを設定します。 | |
$TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXX"; | |
$SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXX"; | |
// API用のHTTPヘッダ | |
$api_headers = array( | |
"X-SPIRAL-API: locator/apiserver/request", | |
"Content-Type: application/json; charset=UTF-8", | |
); | |
// 送信するJSONデータを作成 | |
$parameters = array(); | |
$parameters["spiral_api_token"] = $TOKEN; //トークン | |
// 送信用のJSONデータを作成します。 | |
$json = json_encode($parameters); | |
// curlライブラリを使って送信します。 | |
$curl = curl_init($locator); | |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); | |
curl_setopt($curl, CURLOPT_POST , true); | |
curl_setopt($curl, CURLOPT_POSTFIELDS , $json); | |
curl_setopt($curl, CURLOPT_HTTPHEADER , $api_headers); | |
curl_exec($curl); | |
// エラーがあればエラー内容を表示 | |
if (curl_errno($curl)) echo curl_error($curl); | |
$response = curl_multi_getcontent($curl); | |
curl_close($curl); | |
$response_json = json_decode($response , true); | |
// サービス用のURL | |
$APIURL = $response_json['location']; | |
// ----------------------------------------------------------------------------- | |
// select | |
// ----------------------------------------------------------------------------- | |
// API用のHTTPヘッダ | |
$api_headers = array( | |
"X-SPIRAL-API: database/select/request", | |
"Content-Type: application/json; charset=UTF-8", | |
); | |
// 送信するJSONデータを作成 | |
$parameters = array(); | |
$parameters["spiral_api_token"] = $TOKEN; //トークン | |
$parameters["db_title"] = "member"; //DBのタイトル | |
$parameters["passkey"] = time(); //エポック秒 | |
// 表示カラム名 | |
$parameters["select_columns"] = array("email", "name"); | |
// 検索条件 | |
$parameters["search_condition"] = array( | |
array("name" => "email", "value" => "@example.com", "operator" => "@="), | |
); | |
// 署名を付けます | |
$key = $parameters["spiral_api_token"] . "&" . $parameters["passkey"]; | |
$parameters["signature"] = hash_hmac('sha1', $key, $SECRET, false); | |
// 送信用のJSONデータを作成します。 | |
$json = json_encode($parameters); | |
echo "===> database/select\n"; | |
// curlライブラリを使って送信します。 | |
$curl = curl_init($APIURL); | |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); | |
curl_setopt($curl, CURLOPT_POST , true); | |
curl_setopt($curl, CURLOPT_POSTFIELDS , $json); | |
curl_setopt($curl, CURLOPT_HTTPHEADER , $api_headers); | |
curl_exec($curl); | |
// エラーがあればエラー内容を表示 | |
if (curl_errno($curl)) echo curl_error($curl); | |
$response = curl_multi_getcontent($curl); | |
curl_close($curl); | |
// 画面に表示 | |
print_r(json_decode($response, true)); | |
// ----------------------------------------------------------------------------- | |
// update | |
// ----------------------------------------------------------------------------- | |
// API用のHTTPヘッダ | |
$api_headers = array( | |
"X-SPIRAL-API: database/update/request", | |
"Content-Type: application/json; charset=UTF-8", | |
); | |
// 送信するJSONデータを作成 | |
$parameters = array(); | |
$parameters["spiral_api_token"] = $TOKEN; //トークン | |
$parameters["db_title"] = "member"; //DBのタイトル | |
$parameters["passkey"] = time(); //エポック秒 | |
// 検索条件 | |
$parameters["search_condition"] = array( | |
array("name" => "registDate", "value" => "2014/01/01", "operator" => ">="), | |
array("name" => "registDate", "value" => "2014/12/31", "operator" => "<="), | |
); | |
// 更新データ | |
$parameters["data"] = array( | |
array("name" => "registDate", "value" => "now"), | |
); | |
// 署名を付けます | |
$key = $parameters["spiral_api_token"] . "&" . $parameters["passkey"]; | |
$parameters["signature"] = hash_hmac('sha1', $key, $SECRET, false); | |
// 送信用のJSONデータを作成します。 | |
$json = json_encode($parameters); | |
echo "===> database/update\n"; | |
// curlライブラリを使って送信します。 | |
$curl = curl_init($APIURL); | |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); | |
curl_setopt($curl, CURLOPT_POST , true); | |
curl_setopt($curl, CURLOPT_POSTFIELDS , $json); | |
curl_setopt($curl, CURLOPT_HTTPHEADER , $api_headers); | |
curl_exec($curl); | |
// エラーがあればエラー内容を表示 | |
if (curl_errno($curl)) echo curl_error($curl); | |
$response = curl_multi_getcontent($curl); | |
curl_close($curl); | |
// 画面に表示 | |
print_r(json_decode($response, true)); | |
// ----------------------------------------------------------------------------- | |
// delete | |
// ----------------------------------------------------------------------------- | |
// API用のHTTPヘッダ | |
$api_headers = array( | |
"X-SPIRAL-API: database/delete/request", | |
"Content-Type: application/json; charset=UTF-8", | |
); | |
// 送信するJSONデータを作成 | |
$parameters = array(); | |
$parameters["spiral_api_token"] = $TOKEN; //トークン | |
$parameters["db_title"] = "member"; //DBのタイトル | |
$parameters["passkey"] = time(); //エポック秒 | |
// 検索条件 | |
$parameters["search_condition"] = array( | |
array("name" => "name", "value" => "%桃子", "operator" => "LIKE"), | |
); | |
// 署名を付けます | |
$key = $parameters["spiral_api_token"] . "&" . $parameters["passkey"]; | |
$parameters["signature"] = hash_hmac('sha1', $key, $SECRET, false); | |
// 送信用のJSONデータを作成します。 | |
$json = json_encode($parameters); | |
echo "===> database/delete\n"; | |
// curlライブラリを使って送信します。 | |
$curl = curl_init($APIURL); | |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); | |
curl_setopt($curl, CURLOPT_POST , true); | |
curl_setopt($curl, CURLOPT_POSTFIELDS , $json); | |
curl_setopt($curl, CURLOPT_HTTPHEADER , $api_headers); | |
curl_exec($curl); | |
// エラーがあればエラー内容を表示 | |
if (curl_errno($curl)) echo curl_error($curl); | |
$response = curl_multi_getcontent($curl); | |
curl_close($curl); | |
// 画面に表示 | |
print_r(json_decode($response, true)); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment