>厌倦了自定义中间件,以强迫JSON响应laravel中的API例外吗? Laravel 11简化了此过程。 这种方法消除了对这样的中间件的需求:
>class ForceJsonResponse { public function handle(Request $request, Closure $next) { $request->headers->set('Accept', 'application/json'); return $next($request); } }
现在,您可以在应用程序配置中直接达到相同的结果:
// bootstrap/app.php return Application::configure(basePath: dirname(__DIR__)) //... ->withExceptions(function (Exceptions $exceptions) { $exceptions->shouldRenderJsonWhen(function (Request $request, Throwable $e) { return $request->is('api/*'); }); })->create();这个简洁的代码,利用
的方法,确保API路由(shouldRenderJsonWhen()
)中的所有例外都被渲染为JSON,而不论api/*
Accept
header如何。 请记住,您仍然需要处理非错误响应,以确保他们还返回JSON。
以上是始终呈现API例外作为JSON在Laravel中的详细内容。更多信息请关注PHP中文网其他相关文章!