Heim >Backend-Entwicklung >PHP-Tutorial >Immer API -Ausnahmen als JSON in Laravel machen

Immer API -Ausnahmen als JSON in Laravel machen

Emily Anne Brown
Emily Anne BrownOriginal
2025-03-05 16:42:10697Durchsuche

Always Render API Exceptions as JSON in Laravel

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn