program tip

Laravel-http 상태 코드와 함께 json 반환

radiobox 2020. 11. 26. 08:09
반응형

Laravel-http 상태 코드와 함께 json 반환


객체를 반환하면 :

return Response::json([
    'hello' => $value
]);

상태 코드는 200이됩니다. 메시지와 함께 201로 변경하고 json 객체와 함께 보내려면 어떻게해야합니까?

Laravel에서 상태 코드를 설정하는 방법이 있는지 모르겠습니다.


http_response_code()HTTP 응답 코드를 설정 하는 사용할 수 있습니다 .

매개 변수를 전달하지 않으면 http_response_code가 현재 상태 코드를 가져옵니다. 매개 변수를 전달하면 응답 코드가 설정됩니다.

http_response_code(201); // Set response status code to 201

Laravel의 경우 (참조 출처 : https://stackoverflow.com/a/14717895/2025923 ) :

return Response::json([
    'hello' => $value
], 201); // Status code here

이것이 Laravel 5에서 수행하는 방법입니다.

return Response::json(['hello' => $value],201);

또는 도우미 기능 사용 :

return response()->json(['hello' => $value], 201); 

귀하의 응답을 단일 통제하에 유지하는 것이 더 나은 관행이라고 생각하며 이러한 이유로 가장 공식적인 해결책을 찾았습니다.

response()->json([...])
    ->setStatusCode(Response::HTTP_OK, Response::$statusTexts[Response::HTTP_OK]);

namespace선언 후에 이것을 추가하십시오 .

use Illuminate\Http\Response;

여러 가지 방법이 있습니다

return \Response::json(['hello' => $value], STATUS_CODE);

return response()->json(['hello' => $value], STATUS_CODE);

여기서 STATUS_CODE는 보내려는 HTTP 상태 코드입니다. 둘 다 동일합니다.

Eloquent 모델을 사용하는 경우 기본적으로 간단한 반환도 JSON 으로 자동 변환됩니다 .

return User::all();

return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity

내 대답이 도움이 되었기를 바랍니다.


나는 응답 도우미를 선호합니다.

    return response()->json(['message' => 'Yup. This request succeeded.'], 200);

참고 URL : https://stackoverflow.com/questions/31131159/laravel-return-json-along-with-http-status-code

반응형