Validation
Statut
Document de cadrage backend — version initiale.
Rôle
La validation protège l'API à l'entrée.
Elle doit garantir que les données reçues sont cohérentes avant d'atteindre les services métier.
État actuel visible
Le projet utilise des FormRequest dans plusieurs modules :
- création et mise à jour d'acteurs ;
- documents et tags ;
- publications ;
- signalements ;
- AssoSuite ;
- Mairie ;
- Monetization ;
- Community ;
- Chat ;
- Settings ;
- Identity.
Responsabilités d'une Request
Une Request doit gérer :
- champs requis ;
- types ;
- formats ;
- tailles maximales ;
- existence en base ;
- valeurs autorisées ;
- validation simple et locale.
Ce qui ne doit pas être dans une Request
- Logique métier complexe.
- Mutations de données.
- Appels à des services externes.
- Décisions d'autorisation avancées si une Policy ou middleware est plus adaptée.
Convention cible
class CreateExampleRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'name' => ['required', 'string', 'max:255'],
];
}
}
Validation et autorisation
La validation répond à la question : "les données sont-elles correctes ?"
L'autorisation répond à la question : "l'utilisateur a-t-il le droit de faire cette action ?"
Les deux doivent rester séparées autant que possible.
Points à clarifier
- Convention pour messages d'erreur personnalisés.
- Validation des scopes inter-applications.
- Validation des fichiers et médias.
- Validation des contenus IA générés.
- Harmonisation des règles communes entre modules.