Si devuelvo un objeto:
return Response::json([
'hello' => $value
]);
el código de estado será 200. ¿Cómo puedo cambiarlo a 201, con un mensaje y enviarlo con el objeto json ?.
No sé si hay una manera de configurar el código de estado en Laravel.
php
json
laravel
http-status-codes
Galivan
fuente
fuente
response()->json([], 200);
adecuado para su propósito en esta situación? ¿O es 200 implícito?use Illuminate\Http\Response;
yreturn new Response(['message' => 'test'], 422);
funcionó para míAsí es como lo hago en Laravel 5
return Response::json(['hello' => $value],201);
O usando una función auxiliar:
return response()->json(['hello' => $value], 201);
fuente
Creo que es una mejor práctica mantener su respuesta bajo control único y por esta razón descubrí la solución más oficial.
agregue esto después de la
namespace
declaración:use Illuminate\Http\Response;
fuente
Hay varias formas
return \Response::json(['hello' => $value], STATUS_CODE); return response()->json(['hello' => $value], STATUS_CODE);
donde STATUS_CODE es el código de estado HTTP que desea enviar. Ambos son idénticos.
si está utilizando el modelo Eloquent, entonces el retorno simple también se convertirá automáticamente en JSON de forma predeterminada, como,
return User::all();
fuente
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity
Espero que mi respuesta haya sido útil.
fuente
Yo mismo prefiero el asistente de respuesta:
return response()->json(['message' => 'Yup. This request succeeded.'], 200);
fuente
Es mejor hacerlo con funciones auxiliares en lugar de fachadas . Esta solución funcionará bien desde Laravel 5.7 en adelante
//import dependency use Illuminate\Http\Response; //snippet return \response()->json([ 'status' => '403',//sample entry 'message' => 'ACCOUNT ACTION HAS BEEN DISABLED',//sample message ], Response::HTTP_FORBIDDEN);//Illuminate\Http\Response sets appropriate headers
fuente
laravel 7. * No tienes que especificar JSON RESPONSE porque se convierte automáticamente a JSON
return response(['Message'=>'Wrong Credintals'], 400);
fuente