Laravel 8:仅编辑web.php时,如何将路由加入API组并禁用Web中间件?
解决方法
你可以在web.php里通过自定义路由组,手动指定API中间件并移除默认的Web中间件组,具体代码如下:
Route::group([ 'middleware' => 'api', 'withoutMiddleware' => 'web', 'prefix' => 'api' // 可选,保持和API路由一致的前缀 ], function () { // 在这里添加你的API路由 Route::get('/demo', function () { return response()->json(['status' => 'success', 'message' => 'API路由测试']); }); // 如果需要绑定控制器,直接引用类名即可(Laravel 8+语法) Route::post('/user/store', [App\Http\Controllers\UserController::class, 'store']); });
关键参数说明:
middleware => 'api':给这个路由组应用Laravel默认的API中间件组,包含请求节流、模型绑定等API场景需要的功能withoutMiddleware => 'web':移除web.php路由默认携带的Web中间件组(比如Session、CSRF防护等),确保路由完全符合API的行为prefix => 'api':可选配置,让路由前缀和api.php里的路由保持一致,方便前端统一调用路径
这样定义的路由就和api.php中定义的路由效果完全一致,既使用了API中间件,又不会带上Web中间件的相关逻辑。
内容的提问来源于stack exchange,提问作者develhoper
相关产品推荐
相关产品推荐

