Refactorisation du formulaire de connexion

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