Validation lors de la création / modification d'un User

Aperçu indisponible

Vous devez vous connecter ou vous inscrire pour voir cette leçon.

Se connecterS'inscrire

Développement Moderne avec ApiPlatform (Symfony) et React

Acheter maintenantEn savoir plus

Introduction

  • Qu'est-ce qu'une API ?!5
  • Rappels utiles sur HTTP1
  • Qu'est ce que l'architecture REST ?
  • Pourquoi utiliser API Platform ?1
  • Ce que vous allez découvrir dans cette formation
  • Les outils nécessaires pour suivre ce cours3
  • Mettre en place VSCode pour travailler !4
  • Voir ou revoir les bases de React avant de commencer

Symfony 4 #01 - Mise en place de l'application

  • Introduction1
  • Création d'une application Symfony 4 et mise en place de la base de données13
  • Mise en place des Clients : l'entité Customer8
  • Mise en place des Factures : l'entité Invoice8
  • Fixtures : Créer un jeu de fausses données19
  • Ajout d'un champ `chrono` sur l'entité Invoice
  • Mise en place du système d'authentification : l'entité User7
  • Fixtures : de faux utilisateurs dans notre base de données6
  • Fixtures : Gérer les chronos et la sécurité des mots de passe9
  • Conclusion et versionning du code avec GIT2

ApiPlatform #01 : Mise en place et découverte

  • Introduction de la section
  • Installer le composant API Platform sur l'application Symfony grâce à Composer8
  • Création de notre première Ressource grâce à l'annotation @ApiResource16
  • Présentation du logiciel PostMan pour tester notre API REST12
  • Le modèle de maturité de Richardson1
  • Découverte du format JSON-LD : JSON Linked Data3
  • Le concept d'IRI (adresses uniques) dans le format JSON-LD1
  • Le fichier de configuration d'API Platform5
  • Gestion de la pagination par défaut sur nos collections3
  • Surcharger la configuration pour une ressource en particulier1
  • Configurer le nombre d'éléments avec l'option itemsPerPage2
  • Surcharger la configuration dans une Requête HTTP8
  • Résumé : les 3 niveaux de configuration (globale, par ressource et par requête)
  • Donner un ordre par défaut à nos résultats4
  • SearchFilter : permettre une recherche sur nos résultats14
  • OrderFilter : permettre d'ordonner (trier) nos résultats
  • Cumuler les Filtres sur une ressource
  • Appliquer un filtre sur une propriété d'une ressource liée
  • Conclusion de la section

Exercices et mise en pratique

  • EXERCICE #01 - Bootstraper une API
  • EXERCICE #01 - Correction
  • EXERCICE #02 - Pagination et ordre
  • EXERCICE #02 - Correction2
  • EXERCICE #03 - Filtrage de recherche
  • EXERCICE #03 - Correction

ApiPlatform #02 : comprendre la sérialisation et la désérialisation

  • Introduction de la section
  • Comprendre les concepts de Sérialisation et Désérialisation1
  • Appliquer un groupe de sérialisation à l'entité Customer4
  • Appliquer un groupe de sérialisation à l'entité Invoice1
  • Gérer la sérialisation des ressources liées
  • Le problème des boucles infinies lors de la sérialisation3
  • Extraction des données liées au Customer10
  • Le concept de champs calculés
  • ApiPlatform #02 : Un petit Quiz ? 💪😉

ApiPlatform #03 - Les opérations possibles sur notre API REST

  • Introduction de la section
  • Les 5 opérations de base sur les collections ou sur les items1
  • Activer / Désactiver des opérations sur une ressource6
  • Configurer une opération2
  • Le concept de sous-ressource (SubResource)5
  • Configurer une sous-ressource
  • Sous-ressource et groupes de sérialisation10
  • Créer ses propres opérations57
  • ApiPlatform #03 : Un petit Quiz ? 💪😉

ApiPlatform #04 - Validation des données

  • Introduction de la section
  • Validation lors de la création / modification d'un Customer13
  • Validation simple lors de la création / modification d'une Invoice8
  • Validation de l'Invoice : le problème des types et le flag "disable_type_enforcement"12
  • Création d'un normalizer personnalisé pour les dates24
  • Validation lors de la création / modification d'un User14
  • Conclusion et versionning du code avec GIT

ApiPlatform #05 - Authentification avec JSON Web Token (JWT)

  • Introduction de la section
  • Installation du bundle LexikJwtAuthentication pour gérer les JWT68
  • Sécurisation des ressources pour notre API23
  • Utiliser les ACL pour cibler précisément nos ressources17
  • Conclusion et versionning du code avec GIT1

ApiPlatform #06 - Intervenir aux moments clés grâce aux événements du Kernel

  • Introduction de la section
  • Mise à jour Symfony 54
  • Comprendre le cycle de vie d'une Requête HTTP et les événements du Kernel
  • Intervenir sur la création d'un User pour hasher le mot de passe58
  • Intervenir sur la création d'un Customer pour le lier à l'utilisateur courant30
  • Intervenir sur la création d'une Invoice pour lui donner un chrono30
  • Intervenir sur la création du JWT pour enrichir ses données2
  • Extensions de Doctrine : modifier les requêtes DQL d'ApiPlatform50
  • Extension de Doctrine : ajout du cas d'utilisateurs non connectés
  • Conclusion et versionning du code avec GIT4

React #01 - Mise en place

  • Introduction de la section
  • Installation de Webpack Encore2
  • Découverte de la configuration de WebPack
  • Découverte des différents scripts de compilation WebPack12
  • Création de la page d'accueil de notre site qui portera l'application React
  • Inclure les liens vers les fichiers compilés29
  • Installation de React et des dépendances1
  • Branchement de l'application React à notre page d'accueil14

React #02 - Listings et routage

  • Introduction de la section
  • Création de la page d'accueil et de la barre de navigation11
  • Mise en place du routage avec React Router Dom18
  • Création de la page de liste des Customers1
  • Appel HTTP vers notre API pour récupérer les Customers34
  • Permettre la suppression d'un Customer
  • Suppression : l'approche optimiste et l'approche pessimiste
  • Mise en place d'une pagination sur la liste des Customers5
  • Refactorisation dans un composant de Pagination1
  • Paginer les données grâce à ApiPlatform5
  • Permettre de rechercher un Customer9
  • Refactorisation de la page des Customers10
  • Création de la page de liste des Invoices11
  • Conclusion et versionning du code avec GIT2

React #03 - Authentification JWT

  • Création du formulaire de connexion9
  • Connexion et récupération du JWT auprès de l'API28
  • Refactorisation du formulaire de connexion5
  • Permettre à l'utilisateur de se déconnecter5
  • Mise en place des véritables liens dans la barre de navigation
  • Charger le JWT dès le démarrage de l'application React3
  • Donner de la réactivité lors de la connexion et de la déconnexion6
  • Prendre en compte l'état de l'authentification au démarrage de l'application1
  • Naviguer automatiquement après une connexion ou une déconnexion
  • Créer des routes protégées et inaccessibles aux utilisateurs anonymes5
  • Refactoriser notre application en utilisant les Contexts de React5
  • Refactoriser le fichier app.js et créer un composant <PrivateRoute />2
  • Conclusion et versionning du code avec GIT6

React #04 - Formulaires

  • Création d'un composant <Field /> pour faciliter le développement de forms2
  • Customer : mise en place du formulaire13
  • Customer : validation et erreurs10
  • Customer : gérer la modification d'un customer9
  • Naviguer après la sauvegarde d'un nouveau Customer
  • Customer : refactrisation du code4
  • Invoice : mise en place du formulaire
  • Invoice : création d'un composant <Select /> pour les listes déroulantes7
  • Invoice : validation et erreurs21
  • Invoice : gérer la modification d'une facture19
  • Invoice : refactorisation du code2
  • Register : création du formulaire d'inscription18
  • Conclusion et versionning du code avec GIT4

React #05 - Ergonomie et réactivité

  • Afficher des notifications ultra cool avec React Toastify7
  • Créer des écrans de chargement avec React Content Loader4
  • Ajouter les derniers liens manquants dans l'application5
  • Conclusion et versionning du code avec GIT1

React #06 - Dernières retouches avant mise en production

  • BONUS : On expérimente un cache pour accélérer l'application6
  • Centraliser la configuration dans un seul fichier3
  • Conclusion et versionning du code avec GIT5

Déploiement

  • Introduction de la section
  • Injecter des variables d'environnement avec WebPack14
  • Découverte de Heroku1
  • Heroku : associer notre dépôt GitHub2
  • Heroku : Ajouter un addon pour MySQL1
  • Heroku : Gérer la configuration6
  • Heroku : Récupérer les logs de l'application8
  • Heroku : premier déploiement, premier bug !16
  • Heroku : correction du bug et redéploiement12
  • OVH : Mise en place12
  • OVH : Installer composer sur notre mutualisé6
  • OVH : Génération de l'application React en local7
  • OVH : Repositionner ses variables d'environnement en local47