Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Découvrir API Platform

Gérer les affichages

Testez gratuitement nos 1341 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Les groupes de sérialisation vous donnent accès, ou pas, aux propriétés d'un objet. Leur utilisation est simple et une annotation vous permettra de les configurer.
05:27

Transcription

Pour le moment, nous n'utilisons aucune règle et donc, comme nous n'utilisons pas de règles, il n'y a pas de problème particulier et nos affichages sont tous pareils. Je m'explique. Ici, en l'occurrence, étant donné qu'on n'a pas encore de sérialisation, par exemple, pour une « Task » sur « Post », j'ai le droit d'utiliser, d'inscrire, d'envoyer absolument toutes les valeurs. Bon, on va utiliser la Sérialisation, maintenant on va bloquer certaines valeurs. Alors, je vais vous montrer comment ça fonctionne. D'abord, on va récupérer uniquement ces deux lignes-là : le contexte de normalisation et le contexte de dénormalisation. Et on va leur donner des noms cohérents. Alors, comme vous pouvez le voir, c'est lecture-écriture. On va devoir modifier un tout petit peu notre « APIResource » qui se trouve ici, pour avoir des informations avec 4, ici, comme ça, et on va ça, le mettre à la ligne et ça le descend. Faites bien attention à ce que vous faites à cet endroit-là, parce que ça pourrait amener des erreurs. On va maintenant faire une petite virgule à la fin, à cet endroit-là et on va simplement coller le contexte de normalisation et le contexte de dénormalisation, d'accord ? Il y a un groupe qu'on va appeler « read » pour la normalisation et « write » pour la dénormalisation. Et ça, on va pouvoir les utiliser pour demander à notre documentation de se mettre à jour et pour activer des champs en lecture, en écriture ou les deux. Attention cependant, vous allez devoir aussi, utiliser cette annotation-là, qu'il va falloir d'abord récupérer. Vous pensez bien à la mettre en place, sinon, ça ne marchera pas. On va y aller, on met cette annotation en place, ici. Cette annotation est en place, maintenant on va pouvoir travailler convenablement. Voilà comment s'utilisent les groupes, on va simplement définir au-dessus une propriété si elle est accessible en lecture, en écriture ou les deux. Pour essayer, on va simplement nous le faire sur notre « created_at ». On sait que ce « created_at » de toute façon elle est automatique, lorsqu'on crée une entité, donc, concrètement, ça ne sert à rien de le mettre en écriture. On va le mettre uniquement en lecture. Et regardez ce qui va se passer maintenant, dans notre documentation. On va recharger la doc et on va voir qu'en mettant en place des contextes, quand on fait un post, la réponse, qui va arriver, ça va être ça. on va la voir en lecture. Par contre, regardez, on ne l'a plus en écriture, Donc, ça ne sert à rien de l'envoyer, parce qu'en écriture, il n'est pas pris en compte. Je vais remonter un tout petit peu et je vais regarder ce qui se passe dans le « Get ». Dans le « Get », je ne récupère plus que le « created_at » . Alors, c'est un petit peu problématique quand vous allez commencer à utiliser les contextes. Les contextes vous permettent de bloquer pas mal de choses. Par contre, faites attention, parce que quand on commence à utiliser les contextes, ça veut dire qu'il va falloir définir les groupes sur absolument, toutes les propriétés. L'« id », par exemple. L'« id », je sais qu'en fait, je vais en avoir besoin à un moment ou à un autre en écriture, mais en écriture, que si je fais du « put ». c'est-à-dire, si je viens écrire, si je viens remplacer de la data. Ça, oui et non, pas forcément, parce que vous allez agir sur un « id » déjà, sur une ressource avec son « id » , donc, on pourrait celui-ci, ne le mettre qu'en lecture, uniquement. Le « name », on sait qu'on va pouvoir l'avoir en lecture et en écriture, donc on rajoute l'annotation « lecture-écriture » pour cette partie-là. Attention, c'est une petite étoile ici. On va re-récupérer cette ligne-là, le « time », je sais que j'en ai besoin en lecture, en écriture, la priorité, j'en ai besoin en lecture, en écriture et enfin, l'utilisateur, j'en ai besoin en lecture et en écriture. Vous enregistrez cette partie-là. Et vous allez recharger votre documentation API. Et à ce moment-là, effectivement, en lecture, j'ai toute cette partie-là. Par contre, en écriture maintenant, je me retrouve simplement, avec le « name », le « time », la « priorité » et l'« utilisateur ». Si on a envie d'essayer, on peut tout simplement faire « TryOut », on va envoyer les informations et on voit qu'effectivement, maintenant, ça va poser quelques petits problèmes. Pourquoi on a un problème ici ? On nous dit simplement qu'il a un problème avec le décode, il n'arrive pas à décoder. Donc ça, ça peut être résolu simplement, en venant nettoyer, vous vous souvenez, le cache. On va simplement nettoyer le cache, donc, toujours pareil, « var », on va supprimer le cache ici et on va repousser l'information. Cette fois-ci, on a encore une petite erreur, mais c'est accepté. Voyez que là, on a bien un « Accept ». Alors, on nous dit par contre, regardez, que l'encodeur a un problème, il y a un problème de décode. On nous dit surtout et c'est ça, le plus important, que c'est parce qu'on essaie de pousser un « user » avec une « string », vous vous souvenez, c'est ça qui pose souci. Donc, ne vous inquiétez pas, c'est normal, on pourrait réessayer. Maintenant, vous avez sur cette partie-là, uniquement la capacité à pousser le « name » , le « time », la « priorité » et l'« utilisateur ». Le reste, c'est généré automatiquement, on n'a pas besoin de s'embêter. Pensez bien à ça. Ça veut dire que concrètement, ici, on va pouvoir gérer des groupes de sérialisation, des sérialisations simplement, avec des annotations. Par contre, gardez à l'esprit que si vous l'activez, il va falloir renseigner pour chacun des champs, ça demande un petit peu de travail, surtout quand on a de grosses entités, il va falloir renseigner tous les champs pour que ça fonctionne sinon on risque de se retrouver avec des champs qui sont tout simplement pas pris en compte. S'ils ne sont pas dans un groupe, ils ne sont pas pris en compte, tout simplement. Ça nous permet aussi, pourquoi pas, d'avoir des propriétés totalement privées qui ne sont pas exposées là, on parle vraiment d'exposition au travers de notre API.

Découvrir API Platform

Prenez en main le framework API Platform. Voyez comment effectuer sa configuration, créer des services web de données, et réalisez ainsi efficacement une application complète.

3h24 (54 vidéos)
Aucun commentaire n´est disponible actuellement
 

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !