>  기사  >  PHP 프레임워크  >  Laravel API가 항상 JSON 형식의 응답을 반환하도록 설정

Laravel API가 항상 JSON 형식의 응답을 반환하도록 설정

藏色散人
藏色散人앞으로
2020-04-11 11:53:295707검색

Laravel API가 항상 JSON 형식의 응답을 반환하도록 설정

API를 완전히 제공하는 Laravel 애플리케이션을 작성할 때, 예를 들어 /home 또는 /login으로 리디렉션되는 인증 오류가 결국 InvalidArgumentException으로 바뀌는 대신 모든 응답이 JSON 형식이기를 원합니다. 경로 [로그인]보기가 정의되지 않았습니다.

추천 튜토리얼: "laravel tutorial"

다음의 간단한 솔루션을 사용하면 Laravel 애플리케이션이 먼저 JSON 형식으로 응답하도록 할 수 있습니다.

1단계, BaseRequest 작성

먼저 IlluminateHttpRequest를 다시 작성하기 위해 BaseRequest를 빌드하고 이를 JSON 응답을 사용하는 기본 우선순위로 변경해야 합니다:

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;
    }
}

단계 둘째, BaseRequest 바꾸기

public/index.php 파일에서 IllumiateHttpRequest를 다음과 같이 BaseRequest로 바꾸십시오.

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

완료!

이제 오류와 예외를 포함한 모든 응답은 application/json 입니다.

커뮤니티에서 https://learnku.com/laravel/wikis/16069

위 내용은 Laravel API가 항상 JSON 형식의 응답을 반환하도록 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제