簡単なAPIを作ってみる
APIを作ってみる動機は
- 複数のサイトで同じデータベースを共有したい
- データベースの同期は面倒
サーバーAのサーバーにデータを載せて、これだけを更新し、他のサーバー(サーバーB)はAPIを介して情報をサーバーAから取得する仕組みを作ってみた。
<?php /* 認証 */ if(!認証) { return null; exit; } /* GETで受け取るパラメータから、送るデータを処理 */ $resultJSON='{ "response": "some response here"}'; header("Content-Type: application/json; charset=utf-8"); echo $resultJSON; ?>
<?php $params=array("パラメータA"=>"値A", ...) foreach ($params as $k => $v){ $encoded_params[] = urlencode($k).'='.urlencode($v); } $url='http://サーバーA/api.php?'.implode('&',$encoded_params); $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, "$url"); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl_handle, CURLOPT_POST, 0); $buffer = curl_exec($curl_handle); curl_close($curl_handle); if (empty($buffer)) { return null; } else { $obj=json_decode($buffer, true); // $objの中身を処理 } ?>