Retour à la leçon
Mission

Mission : colmater une fuite de marge dans l'API publique

Corriger une Resource API qui expose une donnee sensible et reintroduit un probleme N+1, puis centraliser la gestion des erreurs.

Contexte

La classe ProduitResource d'une API consommee par un partenaire externe contient la ligne 'cout_achat' => (float) $this->cout_achat, sans aucune condition, alors que ce champ ne devrait etre visible que par les administrateurs internes. Par ailleurs, la meme Resource accede directement a $this->categorie->nom (sans whenLoaded), ce qui declenche une requete SQL supplementaire pour chaque produit de la collection paginee. Enfin, une ModelNotFoundException sur un produit inexistant renvoie actuellement une page d'erreur HTML complete au lieu d'un JSON exploitable par le partenaire.