APIバージョンがヘッダーを介して渡されるLaravel 5.1でRestful APIを構築するのに忙しいです。このようにして、ルート グループ全体をコピーして貼り付けてバージョン番号をインクリメントするのではなく、機能をバージョン管理できます。
私が抱えている問題は、IEのバージョン管理されたメソッドが欲しいということです:
public function store_v1 (){ }
ヘッダーからバージョンをキャプチャするルートにミドルウェアを追加しましたが、コントローラーから正しいメソッドを選択するようにリクエストを変更する必要があります。
アプリ/Http/routes.php
Route::group(['middleware' => ['apiversion']], function()
{
Route::post('demo', 'DemoController@store');
}
アプリ/Http/ミドルウェア/ApiVersionMiddleware.php
public function handle($request, Closure $next)
{
$action = app()->router->getCurrentRoute()->getActionName();
// dd($action)
// returns "App\Http\Controllers\DemoController@store"
}
ここからは、ヘッダー バージョンを $action にアタッチし、それを $request に渡して、正しいメソッドに到達するようにします。
まあ、それはとにかく理論です。
ルートにアクションを挿入する方法についてのアイデアはありますか?