記入日:2023-03-05 編集日:2023-03-05
SQL見るだけクエリ。今回も、PHPのcURLを使ってAPIを利用する方法について考えてみようと思います。もう少し深掘りです。
この記事を読むと(約10分)
PHPのcURLを使って、APIでJSONをPHPで読み込む方法がイメージできます。
curlとは、PHPのlibcurlライブラリを使って、様々なプロトコルで外部のサイトやAPIにアクセスできる機能です。 GETやPOSTなどのHTTPメソッドを指定して、データを送信したり受け取ったりできます。
API関連のcurlの活用方法としては、例えば以下のようなコードがあります。
// 送信先URL $url = 'https://example.com/api.php'; // 送信するデータ $data = array( 'name' => 'Taro', 'age' => 20, ); // JSON形式に変換 $json_params = json_encode($data); // curl初期化 $ch = curl_init(); // オプション設定 curl_setopt($ch, CURLOPT_URL, $url); // URL指定 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 出力内容を受け取る設定 curl_setopt($ch, CURLOPT_POST, true); // POST送信する設定 curl_setopt($ch, CURLOPT_POSTFIELDS, $json_params); // POSTするデータ // 実行 $response = curl_exec($ch); // 終了処理 curl_close($ch); // 受け取ったデータを表示(JSON形式) echo $response;
このコードでは、$urlに指定したAPIに対して、$dataに入れたデータをJSON形式でPOST送信し、返ってきたレスポンスを表示しています。
curlの技術に関して詳しく解説すると長くなりますが、簡単に言うと、libcurlライブラリはC言語で書かれたネットワーク通信用のライブラリであり、PHPからもその機能を利用できるようにしたものです。libcurlは多くのプロトコルやオプションに対応しており、高速かつ安全な通信が可能です。
ちなみに、curlの中で-Hと書かれていると、CURLOPT_HTTPHEADERオプションに指定するという意味です。 例えば、以下のようなコマンドがあります。
curl -H "Content-Type: application/json" -X POST -d '{"name":"Taro","age":20}' https://example.com/api.php
このコマンドでは、-Hオプションでヘッダーを指定しています。これをPHPのcurl関数で書くと、以下のようになります。
// 送信先URL $url = 'https://example.com/api.php'; // 送信するデータ $data = array( 'name' => 'Taro', 'age' => 20, ); // JSON形式に変換 $json_params = json_encode($data); // ヘッダーを設定 $headers = array( 'Content-Type: application/json', ); // curl初期化 $ch = curl_init(); // オプション設定 curl_setopt($ch, CURLOPT_URL, $url); // URL指定 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 出力内容を受け取る設定 curl_setopt($ch, CURLOPT_POST, true); // POST送信する設定 curl_setopt($ch, CURLOPT_POSTFIELDS, $json_params); // POSTするデータ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // ヘッダーを指定 // 実行 $response = curl_exec($ch); // 終了処理 curl_close($ch); // 受け取ったデータを表示(JSON形式) echo $response;
このコードでは、`$headers`に入れたヘッダーをCURLOPT_HTTPHEADERオプションで指定しています。これは上記のコマンドと同じ動作をします。
なお、CURLOPT_USERAGENTオプションでユーザエージェントを指定した場合でも、CURLOPT_HTTPHEADERオプションでユーザエージェントを別に指定した場合は、CURLOPT_HTTPHEADERオプションで指定したものが優先されます。
SQLの使いどころ
サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。
SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。
また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。
KK
機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。