Aller au contenu principal

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.