カテゴリ: Laravel 更新日: 2026/06/30

Laravelで外部APIを呼び出す方法を完全解説!Httpクライアント入門

Laravelで外部APIを呼び出す方法(Httpクライアントの活用)
Laravelで外部APIを呼び出す方法(Httpクライアントの活用)

先生と生徒の会話形式で理解しよう

生徒

「Laravelで、天気情報や他のサービスのデータを使うことってできますか?」

先生

「できますよ。Laravelでは外部APIを呼び出して、別のサービスの情報を受け取れます」

生徒

「APIって難しそうですが、初心者でも扱えますか?」

先生

「LaravelのHttpクライアントを使えば、手紙を送る感覚で簡単に呼び出せます」

1. 外部APIとは何かをやさしく理解しよう

1. 外部APIとは何かをやさしく理解しよう
1. 外部APIとは何かをやさしく理解しよう

外部APIとは、他のサービスが用意してくれている情報の窓口です。たとえば、天気予報、地図情報、ニュース、翻訳などは、すべて外部APIを通じて利用できます。

イメージとしては、「お店に電話をして在庫を聞く」ようなものです。自分のLaravelアプリから外部APIにお願いすると、必要な情報を返してくれます。

LaravelのAPI開発では、この外部API呼び出しがとてもよく使われます。

2. Laravelで外部APIを呼び出す仕組み

2. Laravelで外部APIを呼び出す仕組み
2. Laravelで外部APIを呼び出す仕組み

Laravelでは、Httpクライアントという便利な機能が用意されています。Httpとは、インターネットで情報をやり取りするときの共通ルールです。

Httpクライアントは、「URLにアクセスして、結果を受け取る役割」を持っています。ブラウザでURLを開くのと似ていますが、Laravelの中で自動的に行います。

3. Httpクライアントを使う準備

3. Httpクライアントを使う準備
3. Httpクライアントを使う準備

Laravelでは、最初からHttpクライアントが使える状態になっています。追加のインストールは不要です。

使うときは、Httpというクラスを呼び出します。これは「通信専門の担当者」のような存在です。

4. 外部APIをGETで呼び出す基本例

4. 外部APIをGETで呼び出す基本例
4. 外部APIをGETで呼び出す基本例

まずは、一番シンプルなGET通信から見てみましょう。GETとは、「情報をください」とお願いする方法です。


use Illuminate\Support\Facades\Http;

$response = Http::get('https://example.com/api/sample');
$data = $response->json();

これで、外部APIから返ってきたデータを受け取れます。json()は、受け取った内容を扱いやすい形に変換しています。

5. APIレスポンスとは何か

5. APIレスポンスとは何か
5. APIレスポンスとは何か

APIレスポンスとは、外部APIから返ってくる返事です。多くの場合、JSON形式で送られてきます。

JSONは、項目名と内容がセットになったデータ形式です。表やメモ帳のようなものだと考えると分かりやすいです。

6. POSTで外部APIにデータを送る

6. POSTで外部APIにデータを送る
6. POSTで外部APIにデータを送る

次に、POST通信です。POSTは、「情報を渡します」という方法です。フォーム送信と似ています。


$response = Http::post('https://example.com/api/send', [
    'name' => '太郎',
    'email' => 'taro@example.com'
]);

これにより、Laravelから外部APIへデータを送信できます。

7. ステータスコードを確認する

7. ステータスコードを確認する
7. ステータスコードを確認する

外部APIを呼び出したときは、正しく通信できたかを確認することが大切です。その判断材料がステータスコードです。

ステータスコードは、通信結果を表す番号です。成功したか、失敗したかを教えてくれます。


if ($response->successful()) {
    // 正常に取得できた場合
}

8. Httpクライアントを使うメリット

8. Httpクライアントを使うメリット
8. Httpクライアントを使うメリット

LaravelのHttpクライアントを使うと、コードが読みやすく、初心者でも理解しやすいというメリットがあります。

また、外部API連携を統一した書き方で管理できるため、LaravelのAPI開発と非常に相性が良いです。

9. 外部API連携でよくある使い道

9. 外部API連携でよくある使い道
9. 外部API連携でよくある使い道

外部APIは、天気情報取得、地図表示、決済処理、通知送信など、さまざまな場面で使われます。

Laravelで外部APIを呼び出せるようになると、自分のアプリでできることが一気に広がります。

まとめ

まとめ
まとめ

Laravelにおける外部API連携の基本から応用までを詳しく解説してきましたが、いかがでしたでしょうか。現代のウェブ開発において、自前のシステムだけで完結することは少なく、天気予報データ、決済機能、SNS連携、AIサービスなど、外部の優秀なリソースを活用することが不可欠です。Laravelが提供するHttpクライアントは、複雑な通信処理を驚くほどシンプルに記述できるように設計されており、開発者はビジネスロジックの構築に集中できる環境が整っています。

外部API呼び出しの重要ポイント再確認

外部APIを利用する際は、単にデータを取得するだけでなく、エラーハンドリングやセキュリティ面にも配慮が必要です。例えば、APIキーの管理は必ず環境変数(.envファイル)で行い、ソースコードに直接記述しないようにしましょう。また、外部サービスの応答が遅い場合に自サイトまで重くならないよう、タイムアウトの設定を検討することも実務では重要になります。

実践的なサンプルコード:詳細なオプション指定

実際の開発現場でよく使われる、認証ヘッダーやタイムアウト設定を含めた実践的なコード例を紹介します。これにより、より堅牢な外部API連携が可能になります。


use Illuminate\Support\Facades\Http;

// タイムアウト設定と認証トークンを付与してGETリクエストを送る例
$response = Http::timeout(5) // 5秒でタイムアウト
    ->withToken('your-api-token-here') // Bearerトークン認証
    ->withHeaders([
        'Accept' => 'application/json',
        'Custom-Header' => 'Value'
    ])
    ->get('https://api.example.com/v1/users', [
        'page' => 1,
        'limit' => 10
    ]);

// レスポンスの判定
if ($response->successful()) {
    $users = $response->json();
} else {
    // エラー時の処理(400番台や500番台のステータスコード)
    $errorCode = $response->status();
}

実行結果のイメージ

上記のコードを実行して、APIからユーザーリストを取得できた場合のデータ構造(JSON)は以下のようになります。


{
    "status": "success",
    "data": [
        {
            "id": 1,
            "name": "山田太郎",
            "email": "yamada@example.com"
        },
        {
            "id": 2,
            "name": "佐藤花子",
            "email": "sato@example.com"
        }
    ],
    "meta": {
        "total": 2,
        "current_page": 1
    }
}

API連携をマスターするためのステップ

まずは無料の公開API(郵便番号検索や天気予報など)を使って、実際にデータを取得する練習から始めるのが上達の近道です。LaravelのHttpクライアントは、テスト機能も充実しているため、将来的にユニットテストを書く際にも非常に強力な武器となります。HTTPリクエストを自在に操れるようになると、フロントエンドとバックエンドを分離したモダンなアーキテクチャの設計もスムーズに行えるようになります。

外部APIとの通信は、インターネットという不確実な経路を通るため、常に「相手が止まっているかもしれない」「データが空かもしれない」という想定を持って実装することが、プロのエンジニアへの第一歩です。Laravelの便利な機能を使いこなし、ユーザーにとって価値のある多機能なアプリケーションを作り上げてください。

先生と生徒の振り返り会話

生徒

「先生、まとめまで読んで、外部APIを呼び出すイメージが完全に固まりました!Httpクライアントって本当に魔法みたいに便利ですね。以前、生のPHPでcURLを使って書こうとしたときは、設定が多すぎて挫折しかけたことがあったんです」

先生

「そうですね。cURLを直接扱うと、オプションの設定やエラー処理が煩雑になりがちですが、LaravelのHttpクライアントはそれを人間が読みやすい形にラップしてくれています。開発者が『何をしたいか』を直感的にコードに落とし込めるのが最大の魅力です」

生徒

「サンプルコードにあったタイムアウト設定やヘッダーの付与も、メソッドチェーンで繋げるだけで簡単ですね。でも、もし外部APIからエラーが返ってきたときは、アプリが止まってしまいませんか?」

先生

「鋭い質問ですね。基本的にはsuccessful()failed()といったメソッドで条件分岐をすれば、アプリがクラッシュすることはありません。もっと厳密に管理したい場合は、例外処理を使ってthrowIf()などのメソッドを組み合わせる方法もありますよ」

生徒

「なるほど。APIキーの管理についても、環境変数を使うように気をつけます。セキュリティ意識も大切ですね。これからは、自分で作ったLaravelアプリに、Googleマップの情報を表示させたり、LINE通知を送ったりする機能を組み込んでみたいと思います!」

先生

「その意気です!外部サービスを組み合わせることで、開発の幅は無限に広がります。まずは小さな連携から試して、徐々に複雑な認証が必要なAPIにも挑戦していきましょう。エラーが出ても、ステータスコードを確認すれば解決のヒントが必ず見つかりますよ。頑張ってくださいね」

生徒

「はい、ありがとうございます!早速、お天気APIを使って明日の傘が必要かどうかを教えてくれる機能をマイページに追加してみます!」

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルートとコントローラを対応付ける方法(名前付きルート)を初心者向けに解説
New2
Symfony
Symfonyで画像やファイルをアップロードする時のバリデーション完全ガイド!初心者でもわかる入力チェックの基本
New3
Laravel
Laravelで言語切替UIを作る!多言語対応(ローカリゼーション)実践ガイド
New4
CodeIgniter
CodeIgniterでローカル開発環境を構築する方法!初心者向け完全ガイド
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのキャッシュ管理を完全ガイド!初心者でもわかるメリットと注意点
No.2
Java&Spring記事人気No2
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
No.3
Java&Spring記事人気No3
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.4
Java&Spring記事人気No4
CodeIgniter
CodeIgniterとは?特徴・できること・他PHPフレームワークとの違いを完全解説
No.5
Java&Spring記事人気No5
Laravel
Laravelローカリゼーション入門!言語の取得と切り替え(App::getLocale / setLocale)を徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelの条件分岐とループ処理をBladeで書く方法
No.7
Java&Spring記事人気No7
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterのビュー共通化ガイド!初心者でもわかる部分ビューの読み込みとinclude設計