LaravelのAPIとフロントエンド(Vue/React)を接続する方法を初心者向けにやさしく解説
生徒
「LaravelでAPIを作ったあと、画面はどうやって表示するんですか?」
先生
「画面側はVueやReactといったフロントエンドで作り、LaravelのAPIと通信します」
生徒
「通信って、難しそうで不安です…」
先生
「大丈夫です。仕組みを知れば、手紙のやり取りのように理解できます」
1. LaravelのAPIとフロントエンドの関係とは?
LaravelのAPI開発では、データを返す役割をLaravelが担当します。一方で、VueやReactは画面を表示する役割を持っています。これは、料理を作る人と、料理を運ぶ人が分かれているレストランのような関係です。
APIとは「決まった形式でデータを渡す窓口」のことです。LaravelのAPIはJSONという形式でデータを返し、フロントエンドはそのデータを受け取って画面に表示します。
2. API通信の基本仕組みを超かんたんに理解しよう
API通信は、インターネットを使ったお手紙の交換に例えられます。フロントエンドが「データください」という手紙を送り、LaravelのAPIが「どうぞ」と返事をします。
このとき使われるのがHTTP通信です。HTTPとは、インターネット上で情報をやり取りするための共通ルールです。難しく考えず、「決まりごと」と覚えて大丈夫です。
3. Laravel側でAPIを用意する流れ
Laravelでは、ルーティングとコントローラを使ってAPIを作ります。API用のルートはroutes/api.phpに書くのが基本です。ここに「このURLにアクセスされたら、この処理をする」という決まりを書きます。
コントローラでは、配列のデータをそのまま返すだけで、自動的にJSON形式に変換されます。これにより、VueやReactから使いやすいAPIになります。
Route::get('/message', function () {
return ['message' => 'こんにちは、Laravel APIです'];
});
4. VueやReactからAPIを呼び出す考え方
VueやReactでは、APIを呼び出す処理を書いて、LaravelのAPIにアクセスします。ここでよく使われるのがfetchという仕組みです。fetchは「このURLにアクセスして、結果を受け取る」ための命令です。
受け取ったJSONデータは、変数に入れて画面に表示します。つまり、Laravelは裏方、VueやReactは表舞台という役割分担になります。
<script>
fetch('http://localhost/api/message')
.then(response => response.json())
.then(data => {
console.log(data.message);
});
</script>
5. なぜAPIとフロントエンドを分けるのか
APIとフロントエンドを分けることで、作業を分担しやすくなります。また、同じLaravelのAPIを使って、スマホアプリや別の画面を作ることもできます。
この仕組みは、Laravel API開発、Vue連携、React連携といったキーワードで多く使われており、現場でも一般的です。最初は難しく感じますが、役割を分けて考えると理解しやすくなります。
6. 初心者がつまずきやすいポイント
初心者がよく困るのは、「画面に何も表示されない」という点です。これは、URLが間違っていたり、APIが動いていないことが原因です。
まずは、ブラウザでAPIのURLに直接アクセスして、JSONが表示されるか確認しましょう。これができれば、LaravelのAPIは正しく動いています。