Conventions API
Les contrôleurs API doivent retourner du JSON cohérent et utiliser Form Requests, Resources, Policies et rate limits.
Structure de réponse
{
"data": {},
"meta": {},
"message": "Message optionnel lisible par l'humain"
}
Codes HTTP
| Cas | Code |
|---|---|
| Succès | 200 |
| Créé | 201 |
| Pas de contenu | 204 |
| Erreur de validation | 422 |
| Non authentifié | 401 |
| Interdit | 403 |
| Non trouvé | 404 |
Règles
- Utiliser les API Resources pour la sortie des modèles
- Ne jamais exposer les champs internes/cachés
- Utiliser la pagination pour les collections
- Retourner les erreurs de validation via les défauts Laravel
- Utiliser des noms de routes stables et versionner si nécessaire
Exemple de ressource API
class UserResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id_user,
'name' => $this->name,
'email' => $this->email,
'is_active' => $this->is_active,
'service' => new ServiceResource($this->whenLoaded('service')),
'created_at' => $this->created_at?->toIso8601String(),
];
}
}