オタブロ > IT知識 > PHP > 【Laravel8】LaravelでのApiの作り方

【Laravel8】LaravelでのApiの作り方

IT知識

今回はLaravel8でApiを作る方法について解説します。

まず「Http/Controllers」配下にApiというディレクトリを作って以下のコマンドを実行してください。

php artisan make:controller Api/EmployeeController  --resource

これで先ほど作成したApi配下にindexやstoreなどの関数が書かれた「EmployeeController」が作成されたと思います。

続いてapi.phpに以下を記述してください。これで「api/employee」でのアクセスが可能になりました。以下の記述はURLによってGETやPOST、indexやstoreなどどの処理をするか自動で振り分けてくれます。

Route::resource('employee', EmployeeController::class);

どのように振り分けられているかは「php artisan route:list」を実行して確認が可能です。

# php artisan route:list                         
+--------+-----------+------------------------------+------------------+------------------------------------------------------------------------+---------------------------------------------+
| Domain | Method    | URI                          | Name             | Action                                                                 | Middleware                                  |
+--------+-----------+------------------------------+------------------+------------------------------------------------------------------------+---------------------------------------------+
|        | GET|HEAD  | /                            |                  | Closure                                                                | web                                         |
|        | GET|HEAD  | api/employee                 | employee.index   | App\Http\Controllers\EmployeeController@index                          | api                                         |
|        | POST      | api/employee                 | employee.store   | App\Http\Controllers\EmployeeController@store                          | api                                         |
|        | GET|HEAD  | api/employee/create          | employee.create  | App\Http\Controllers\EmployeeController@create                         | api                                         |
|        | GET|HEAD  | api/employee/{employee}      | employee.show    | App\Http\Controllers\EmployeeController@show                           | api                                         |
|        | PUT|PATCH | api/employee/{employee}      | employee.update  | App\Http\Controllers\EmployeeController@update                         | api                                         |
|        | DELETE    | api/employee/{employee}      | employee.destroy | App\Http\Controllers\EmployeeController@destroy                        | api                                         |
|        | GET|HEAD  | api/employee/{employee}/edit | employee.edit    | App\Http\Controllers\EmployeeController@edit                           | api                                         |

最後に 「EmployeeController」 のindexを以下のように変更してください。

    public function index()
    {
        return response()->json(['name' => 'test']); //ここを追加
    }

これで「/api/employee」でapiが叩けるようになったかと思います。

タイトルとURLをコピーしました