Si je retourne un objet:
return Response::json([
'hello' => $value
]);
le code d'état sera 200. Comment puis-je le changer en 201, avec un message et l'envoyer avec l'objet json ?.
Je ne sais pas s'il existe un moyen de définir simplement le code d'état dans Laravel.
Vous pouvez utiliser http_response_code()
pour définir le code de réponse HTTP.
Si vous ne transmettez aucun paramètre, http_response_code obtiendra le code d'état actuel. Si vous transmettez un paramètre, il définira le code de réponse.
http_response_code(201); // Set response status code to 201
Pour Laravel (Référence: https://stackoverflow.com/a/14717895/2025923 ):
return Response::json([
'hello' => $value
], 201); // Status code here
Voici comment je le fais dans Laravel 5
return Response::json(['hello' => $value],201);
Ou en utilisant une fonction d'assistance:
return response()->json(['hello' => $value], 201);
Je pense qu'il est préférable de garder votre réponse sous contrôle unique et c'est pour cette raison que j'ai trouvé la solution la plus officielle.
response()->json([...])
->setStatusCode(Response::HTTP_OK, Response::$statusTexts[Response::HTTP_OK]);
ajoutez ceci après la déclaration namespace
:
use Illuminate\Http\Response;
Il y a plusieurs façons
return \Response::json(['hello' => $value], STATUS_CODE);
return response()->json(['hello' => $value], STATUS_CODE);
où STATUS_CODE est le code de statut HTTP que vous souhaitez envoyer. Les deux sont identiques.
si vous utilisez le modèle Eloquent, le retour simple sera également auto converti en JSON par défaut comme,
return User::all();
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity
J'espère que ma réponse a été utile.
Voici le moyen approprié d'envoyer le code de réponse correct en réponse
return http_response_code();
Je préfère l'aide-réponse moi-même:
return response()->json(['message' => 'Yup. This request succeeded.'], 200);