No video

Symfony 7 : Créer une API, Désérialisation et MapRequestPayload

  Рет қаралды 4,262

Grafikart.fr

Grafikart.fr

Күн бұрын

Article ► grafikart.fr/t...
La désérialisation est le fonctionnement inverse à celui que l'on a vu précédemment. L'objectif est de convertir les données fournies dans un certain format dans un objet de notre application.
Soutenez Grafikart:
Devenez premium ► grafikart.fr/p...
Retrouvez Grafikart sur:
Le site ► grafikart.fr
Twitter ► / grafikart_fr
Discord ► grafikart.fr/t...

Пікірлер: 10
@GuillaumeC37
@GuillaumeC37 5 ай бұрын
Merci pour la vidéo. Mais à 8:30, on retrouve le souci du slug créé par l'utilisateur.
@gamesngeeks
@gamesngeeks 5 ай бұрын
On peut passer par les DTO non?
@tajimaryohei
@tajimaryohei 5 ай бұрын
Il y a pas mal de solutions pour pallier à cela. Perso je passe par l'utilisation du formulaire (le même qu'utilisé dans les vidéos précédentes) : tu gardes le contrôle des données et la logique de création du slug et des dates. Pour utiliser le formulaire il y a 2-3 modif à faire par rapport à ce qu'on fait d'habitude : on ne passe plus par la méthode $form->handleRequest() pour attacher les données envoyées mais plutôt par la méthode $form->submit($data) qui va soumettre le formulaire avec les données. Seul petit bémol, la méthode submit attends un tableau de données. Or le $request->getContent() nous renvoie un json donc faut le transformer en tableau (un bon vieux json_decode() marche). Et voilà. Si jamais le formulaire soumis est incorrect tu peux renvoyer les messages d'erreurs à l'utilisateur via la méthode $form->getErrors(true)
@Raphael-jo1rp
@Raphael-jo1rp 5 ай бұрын
A noter qu'à l'heure où j'écris ces lignes, CàD en utilisant Symfony 5.8.12, la méthode paginateRecipes retourne un TypeError : "App\Repository\RecipeRepository::paginateRecipes(): Argument #1 ($page) must be of type int, null given" Ceci malgré le nullable sur la propriété public du contructeur du PaginationDTO, appliqué aussi dans la méthode index de RecipesController avec pour valeur par défaut null. J'ai testé avec le code source, c'est la même erreur.
@golf3gtiii
@golf3gtiii 5 ай бұрын
Bonjour, Merci pour la vidéo. Concernant l'édition d'une entité, je ne comprends pas comment on peut utiliser MapRequestPayload. Est-ce qu'il y a un moyen simple de le faire ? J'ai cru comprendre qu'il fallait passer par un resolver, mais je n'ai pas trouvé d'exemple concret.
@fredericfor8720
@fredericfor8720 5 ай бұрын
Bonjour, pareil, pour l'édition j'ai dû utiliser la méthode "deserialize" ...
@vincentphilippe_18
@vincentphilippe_18 5 ай бұрын
Je ne comprends pas comment le MapRequestPayload fonctionnerait pour transformer un id en entité, je trouve ça assez limité finalement car c'est rare d'avoir des DTO composé uniquement de données scalaire
@R.e.n.e
@R.e.n.e 5 ай бұрын
Il peut pas pour avoir un objet à partir d'Id il faut utiliser faire la méthode find du repository de l'objet
@JeanLebreton
@JeanLebreton 5 ай бұрын
Un Data Transfer Object ne contient que du scalaire à part peut-être une composition avec un tableau de DTO. Si tu as autres choses, c'est que tu ne respectes pas le pattern DTO 😉 Sinon, ce n'est pas l'attribut MapRequestPayload qui transforme les données d'entrées en instance d'objet, c'est le conteneur d'injection de dépendances (Autowiring).
@marxhubert
@marxhubert 5 ай бұрын
1st comment
Symfony 7 : Créer une API, Authenticator stateless
13:07
Grafikart.fr
Рет қаралды 6 М.
Parenting hacks and gadgets against mosquitoes 🦟👶
00:21
Let's GLOW!
Рет қаралды 13 МЛН
Comfortable 🤣 #comedy #funny
00:34
Micky Makeover
Рет қаралды 17 МЛН
SCHOOLBOY. Последняя часть🤓
00:15
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 13 МЛН
When RESTful architecture isn't enough...
21:02
Dreams of Code
Рет қаралды 270 М.
Cette intelligence artificielle est mieux que HeyGen ?
8:28
Evans Yao
Рет қаралды 4,5 М.
Tutoriel SSH : Utiliser une clef SSH
9:57
Grafikart.fr
Рет қаралды 9 М.
Apprendre Vue.js : Gérer le CSS avec Vue.js
11:51
Grafikart.fr
Рет қаралды 1,3 М.
Deep Dive into REST API Design and Implementation Best Practices
12:02
Software Developer Diaries
Рет қаралды 46 М.
Comment je structure mon code backend ?
34:10
Grafikart.fr
Рет қаралды 23 М.
Parenting hacks and gadgets against mosquitoes 🦟👶
00:21
Let's GLOW!
Рет қаралды 13 МЛН