Des nouvelles ont été ajoutées en tête de listes.
Remontez pour les voir.
Inscription à la newsletter
Validation cohérente avec API Platform 3
DEV -
12/05
TL;DR API Platform utilise deux composants Symfony - Serializer et Validator - pour traiter...
TL;DR
API Platform utilise deux composants Symfony - Serializer et Validator - pour traiter les requêtes. Par défaut, ces composants produisent des réponses d'erreur différentes qui peuvent entraîner des incohérences dans une API. La configuration de la collecte des erreurs de dénormalisation permet de transformer les exceptions de vérification de type en liste de violations appropriée.
Échec des tests
API Platform est un excellent outil pour le développement rapide d'API, mais il possède de nombreuses fonctionnalités moins bien documentées qui peuvent parfois prêter à confusion. En jouant avec un de mes nouveaux projets, je suis tombé sur un : les tests échouaient pour mes assertions de validation des réponses des points finaux !
Tous les blocs de code sont des exemples modifiés de ce référentiel. N'hésitez pas à l'explorer pour plus de détails.
Avant de continuer, voyons le code dont nous parlons.
// src/Entité/Vacance.php?php declare(strict_types=1); namespace App\Entity; use ApiPlatform\Metadata\ApiResource; use Symfony\Component\Serializer\Attribute as Serializer; use Symfony\Component\Validator\Constraints as Assert; #[ApiResource( normalizationContext: ['groups' =['read']], denormalizationContext : ['groups' => ['create']], )] class Poste vacant { #[Serializer\Groups(['read'])] public ?int $id = null; #[Serializer\Groups(['read', 'create'])] #[Assert\NotBlank, Assert\Length(max : 255)] public ?string $title = null; #[Serializer\Groups(['read', 'create'])] #[Assert\NotBlank, Assert\Positive, Assert\Type('integer')] public ?int $minBudget = null; }
Entrer en mode plein écran Quitter le mode plein écran
Ce q... [Courte citation de 8% de l'article original]
Loading...
🍪
Le modèle économique de notre site repose sur l'affichage de publicités personnalisées basées sur l'utilisation de cookies publicitaires. En continuant votre visite sur notre site, vous consentez à l'utilisation de ces cookies.
Politique de confidentialité