こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 LaravelでAPIを実装する基本のやり方を解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
| OS | Windows10 | 
|---|---|
| PHPのバージョン | 8.0.3 | 
| Laravelのバージョン | 8.42.1 | 
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。

APIを実装するやり方を解説
APIを実装するやり方をサンプルプログラムをまじえて解説します。
APIを実装するためには
- コントローラー作成
 - api.phpにルーティングを設定
 
の2つが最低限必要です。
これらだけでAPIを作成し、解説していきます。
コントローラー作成
コントローラー作成の解説をします。
API用のコントローラーを作成するやり方は、Web用と同じくコマンドで作成します。
これが最も簡単です。
コマンドは
| 
					 1  | 
						php artisan  make:controller 【作成するコントローラーの名前】  | 
					
でコントローラーを作成することができます。
またapiオプションを足してコントローラーを作成すると、APIで使うであろう関数がすでに用意されている状態でコントローラーを作成することができます。
開発したい機能を想定して、コントローラーを作成するとapiオプションをつけるかつけないかを判断してください。
詳しくはこちらの記事をご参考ください。
【Laravel】コントローラーを新規作成するartisan make:controllerコマンドを解説します
apiオプションについて
【Laravel】APIのコントローラーを作成するのに便利なapiオプションを解説します
この記事ではapiオプションをつけずにコントローラーを作成し、以下のような内容としました。
| 
					 1 2 3 4 5 6 7 8 9 10  | 
						<?php namespace App\Http\Controllers; class SampleController extends Controller {     public function apiHello(){         return 'Hello World';     } }  | 
					
名前を【SampleController 】として、呼び出されたら、「Hello World」を返すという単純なものです。
api.phpにルーティングを設定
api.phpにルーティングを設定を解説します。
Web用のルーティングはweb.phpに定義しましたが、APIだとapi.phpにルーティングを定義します。
ルーティングを定義するファイルは異なりますが、書き方は同じです。
この記事では先ほどの【SampleController 】を呼ぶよう以下のように定義しました。
| 
					 1 2 3 4 5 6  | 
						<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample', [SampleController::class, 'apiHello']);  | 
					
ルーティングで注意点があります。
それは、【/api】URIプレフィックスがデフォルトで自動的に適用されます。
上記の定義したルーティングにアクセスするためには、【http://localhost:8000/sample】ではなく【http://localhost:8000/api/sample】でアクセスする必要がある、ということです。
api.phpについてはこちらの記事をご参考ください。
api.phpに正しく定義できたか?を確認するには
| 
					 1  | 
						php artisan route:list  | 
					
というルーティングを確認できるコマンドをたたきます。
このコマンドについてはこちらの記事をご参考ください。
コマンドをたたくと以下のように表示されて、ルーティングが正しく定義されていることが確認できます。

| 
					 1 2 3 4 5 6 7 8 9  | 
						C:\Laravel\LaravelSample>php artisan route:list +--------+----------+------------+------+------------------------------------------------+------------+ | Domain | Method   | URI        | Name | Action                                         | Middleware | +--------+----------+------------+------+------------------------------------------------+------------+ |        | GET|HEAD | /          |      | Closure                                        | web        | |        | GET|HEAD | api/sample |      | App\Http\Controllers\SampleController@apiHello | api        | |        | GET|HEAD | form       |      | Closure                                        | web        | |        | GET|HEAD | show       |      | App\Http\Controllers\SampleController@show     | web        | +--------+----------+------------+------+------------------------------------------------+------------+  | 
					
APIを実行し確認する
APIを作成するのに最低限必要な
- コントローラー作成
 - api.phpにルーティングを設定
 
の2つができたので、実行し確認します。
Laravelでサーバーを立ち上げるコマンドは
| 
					 1  | 
						php artisan serve  | 
					
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
サーバーが立ち上がったらコマンドプロンプトをもう1つ立ち上げて、
- curl http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/api/sample
※コマンドプロンプトに記載されているURL - curl http://localhost:8000/api/sample
 
とどちらかのコマンドをたたきます。
curlコマンドとは、データを転送するために使うコマンドです。
HTTPリクエストしたいときに便利です。
コマンドをたたくとコントローラーに記載した通り、「Hello World」が返ってくることが確認できました。

| 
					 1 2 3 4 5  | 
						C:\Laravel\LaravelSample>curl http://localhost:8000/api/sample Hello World C:\Laravel\LaravelSample>curl http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/api/sample Hello World C:\Laravel\LaravelSample>  | 
					
まとめ:APIを作成してみよう
以上がLaravelでAPIを実装する基本のやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
この記事ではAPIの実装の基本について解説しました。
APIで他にできることも知りたい、という方はこちらの記事もご参考ください。
【Laravel】APIでjsonを返す実装のやり方を解説します
リクエストに対してバリデーションするやり方
【Laravel】APIでリクエストに対してバリデーションするやり方を解説します
  
  
  
  
コメント