Valider avant le travail du contrôleur
ApiRequest emploie Validator et produit une exception transformée en réponse 422 avec erreurs par champ.
return ApiResponse::success([
'data' => MovieResource::collection($movies),
]);Retourner une ressource, pas une entité
Une Resource renomme les champs, formate les dates, cache les secrets et ajoute des liens. Ce contrat reste stable même si l’entité change.
Stabiliser les erreurs
Le client doit traiter un code et un message cohérents. Les détails de débogage apparaissent seulement lorsque le mode est explicitement actif.