第50回: API呼び出し(cURL) — PHPから外部サービスを叩く実践技術

章: 第5章: Web・DB・セキュリティ

決済APIや天気情報API、PHPからどうやって呼び出しますか?cURLを使えば、外部サービスとの連携がPHPから直接できます。

問題と解決策

Webアプリは単独で完結するのではなく、外部サービスと連携することが現代では当たり前です。しかし、外部APIへのリクエストは失敗することもあります—— タイムアウト、APIエラー、ネットワーク障害など。

cURLはHTTPリクエストをPHPから送るための拡張機能です。GET/POST/PUT/DELETE等を送れ、ヘッダーの設定やレスポンスの取得も細かく制御できます。エラー処理を含めた実装が実務では不可欠です。

HTTP通信手段の比較

手段 特徴 推奨シーン
file_get_contents() 簡単だが制御が限られる 単純なGETリクエスト
cURL 高機能・細かい制御が可能 認証付きAPI・POST送信
Guzzle(ライブラリ) 非同期・高機能 大規模アプリ

チェックポイント: curl_exec() の後に curl_errno() でエラーを確認していますか?外部APIは必ず失敗することを前提に、エラー時の処理(リトライ・ログ記録)を実装しましょう。

コードサンプル


<?php
$ch = curl_init('https://example.com/api');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

まとめ & 次のステップ

  • curl_init()curl_setopt()curl_exec()curl_close() の順で実行します
  • CURLOPT_RETURNTRANSFERtrue にしないとレスポンスが直接出力されます
  • curl_errno() でエラーを確認し、失敗時の処理を必ず実装しましょう
  • タイムアウト設定(CURLOPT_TIMEOUT)も本番環境では必ず指定します

次回は 日時処理 — タイムゾーンと日時フォーマットを正しく扱う方法を学びます。

Related Articles