最近、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'
]);
コメントする