Heim  >  Artikel  >  PHP-Framework  >  Sorgen Sie dafür, dass die Laravel-API immer JSON-formatierte Antworten zurückgibt

Sorgen Sie dafür, dass die Laravel-API immer JSON-formatierte Antworten zurückgibt

藏色散人
藏色散人nach vorne
2020-04-11 11:53:295597Durchsuche

Sorgen Sie dafür, dass die Laravel-API immer JSON-formatierte Antworten zurückgibt

Wenn Sie eine Laravel-Anwendung schreiben, die ausschließlich für APIs gedacht ist, möchten Sie, dass alle Antworten im JSON-Format vorliegen und nicht, dass beispielsweise Autorisierungsfehler nach /home oder /login umgeleitet werden. Die endgültige Umleitung wird zur Ansicht von InvalidArgumentException: Route [login] ist nicht definiert.

Empfohlenes Tutorial: „Laravel-Tutorial

Mit der folgenden einfachen Lösung kann Ihre Laravel-Anwendung zunächst im JSON-Format antworten.

Erster Schritt: Schreiben Sie BaseRequest

Zuerst müssen wir ein BaseRequest erstellen, um IlluminateHttpRequest neu zu schreiben und es so zu ändern, dass der JSON-Antwort standardmäßig Priorität eingeräumt wird:

app /Http/Requests/BaseRequest.php

<?php
namespace App\Http\Requests;
use Illuminate\Http\Request;
class BaseRequest extends Request
{
    public function expectsJson()
    {
        return true;
    }
    public function wantsJson()
    {
        return true;
    }
}

Der zweite Schritt besteht darin, BaseRequest zu ersetzen

Ersetzen Sie in der Datei public/index.php IllumiateHttpRequest durch unser BaseRequest . Wie folgt:

$response = $kernel->handle(
    $request = \App\Http\Requests\BaseRequest::capture()
);

Fertig!

Alle Antworten sind jetzt application/json, einschließlich Fehlern und Ausnahmen.

Aus der Community https://learnku.com/laravel/wikis/16069

Das obige ist der detaillierte Inhalt vonSorgen Sie dafür, dass die Laravel-API immer JSON-formatierte Antworten zurückgibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen