最近、Vue.jsやReactなどを使用したSPA開発がトレンドで、API開発も需要も高まってきてます。
Laravelでは、APIに必要なルートやコントローラを簡単に生成できるしくみが用意されています。
今回はLaravelでAPIの開発を始める際の基礎をみてみます。
ちなみに、Laravel 6.xがインストール済みであることを前提とします。
また、任意の「Sample」データに対してAPIを開発するとします。
コントローラ作成
以下のコマンドで、APIに必要な関数を含んだコントローラ「app/Http/Controllers/API/SampleController.php」を作成することができます。
$ php artisan make:controller API/SampleController --api
作成されたコントローラの中身は以下のようになってます。
namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class SampleController extends Controller { public function index() { // } public function store(Request $request) { // } public function show($id) { // } public function update(Request $request, $id) { // } public function destroy($id) { // } }
ルート作成
次にルートを設定します。
「routes/api.php」を開き、以下を追記すると、APIに必要な基本ルートが設定されます。
Route::apiResource('sample', 'API\SampleController');
ルートをartisanコマンドで確認してみます。
$ php artisan route:list (中略) | Method | URI | Name | Action | Middleware | +-----------+---------------------+----------------+---------------------------------------------------+------------+ | POST | api/sample | sample.store | App\Http\Controllers\API\SampleController@store | api | | GET|HEAD | api/sample | sample.index | App\Http\Controllers\API\SampleController@index | api | | DELETE | api/sample/{sample} | sample.destroy | App\Http\Controllers\API\SampleController@destroy | api | | PUT|PATCH | api/sample/{sample} | sample.update | App\Http\Controllers\API\SampleController@update | api | | GET|HEAD | api/sample/{sample} | sample.show | App\Http\Controllers\API\SampleController@show | api | (中略)
それぞれのルートについては、以下の目的で使用します。
sample.index | Sampleデータの一覧を返します |
---|---|
sample.store | Sampleに新しいデータを追加します |
sample.show | 指定したSampleデータを返します |
sample.update | 指定したSampleデータを更新します |
sample.destroy | 指定したSampleデータを削除します |
例えば「update」や「show」は使わないなど、不要な処理がある場合は、以下のようにしてルートの除外指定ができます。対象のコントローラの関数は手動で削除します。
Route::apiResource('sample', 'API\SampleController')->except([ 'update', 'show' ]);
コメントする