みの雑多ブログ

勉強したことをアウトプットしたり、しなかったり

Laravelでapiを作るには

環境

PHP 8.0.6 (cli)
Laravel Installer 4.2.5

手順

php artisan make:controller [コントローラー名]

できたファイル(コメントなど省略)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class [コントローラー名] extends Controller
{
    public function index()
    {
    }

    public function store(Request $request)
    {
    }

    public function show($id)
    {
    }

    public function update(Request $request, $id)
    {
    }

    public function destroy($id)
    {
    }
}

全件取得、登録、id指定取得、更新、はかい~!のメソッドが自動で記載される

api.phpに追記

Route::apiResource('/hogehoge', '[コントローラー名]');

ルーティングされているものを見てみる

php artisan route:list
+--------+-----------+------------------------+------------------+-------------------------------------------------+------------+
| Domain | Method    | URI                    | Name             | Action                                          | Middleware |
+--------+-----------+------------------------+------------------+-------------------------------------------------+------------+
|        | GET|HEAD  | api/hoge               | hoge.index       | App\Http\Controllers\HogeController@index       | api        |
|        | POST      | api/hoge               | hoge.store       | App\Http\Controllers\HogeController@store       | api        |
|        | GET|HEAD  | api/hoge/{hoge}        | hoge.show        | App\Http\Controllers\HogeController@show        | api        |
|        | PUT|PATCH | api/hoge/{hoge}        | hoge.update      | App\Http\Controllers\HogeController@update      | api        |
|        | DELETE    | api/hoge/{hoge}        | hoge.destroy     | App\Http\Controllers\HogeController@destroy     | api        |

わお!全部盛りが秒で作れるやん。
Laravel界では当たり前かもしれないけど、感動した。