Müde von benutzerdefinierter Middleware, um JSON -Antworten für API -Ausnahmen in Laravel zu erzwingen? Laravel 11 rationalisiert diesen Prozess. Dieser Ansatz beseitigt die Notwendigkeit von Middleware wie folgt:
class ForceJsonResponse { public function handle(Request $request, Closure $next) { $request->headers->set('Accept', 'application/json'); return $next($request); } }
Jetzt können Sie das gleiche Ergebnis direkt in Ihrer Anwendungskonfiguration erzielen:
// 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();
Dieser prägnante Code, der die shouldRenderJsonWhen()
-Methode nutzt, stellt sicher, dass alle Ausnahmen innerhalb der API -Routen (api/*
) als JSON unabhängig vom Accept
-Header als JSON gerendert werden. Denken Sie daran, Sie müssen immer noch Nicht-Fehler-Antworten bearbeiten, um zu garantieren, dass sie auch JSON zurückgeben.
Diese elegante Lösung stammt direkt aus der Laravel -Dokumentation, einer wertvollen Ressource, die weitere Anleitungen zum Drosseln der Ausnahme, der Anpassung der Fehlerantwort und mehr.
bietet.Das obige ist der detaillierte Inhalt vonImmer API -Ausnahmen als JSON in Laravel machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!