Développement Moderne avec ApiPlatform (Symfony) et React
par
Lior Chamla
Se connecter
Accéder pour 75 €
Introduction de la section
Développement Moderne avec ApiPlatform (Symfony) et React
/
ApiPlatform #05 - Authentification avec JSON Web Token (JWT)
Développement Moderne avec ApiPlatform (Symfony) et React
Suivez moi et créons ensemble une application React qui communique avec un backend Symfony 4 grâce à ApiPlatform !
Accéder pour 75 €
En savoir plus
Déjà inscrit ?
Connectez-vous pour continuer.
Sommaire
Développement Moderne avec ApiPlatform (Symfony) et React
par
Lior Chamla
ui-24px-outline-1_lock
Introduction
Introduction
Draft
Qu'est-ce qu'une API ?!
Draft
Qu'est-ce qu'une API ?!
Draft
Rappels utiles sur HTTP
Draft
Rappels utiles sur HTTP
Draft
Qu'est ce que l'architecture REST ?
Draft
Qu'est ce que l'architecture REST ?
Draft
Pourquoi utiliser API Platform ?
Draft
Pourquoi utiliser API Platform ?
Draft
Ce que vous allez découvrir dans cette formation
Draft
Ce que vous allez découvrir dans cette formation
Draft
Les outils nécessaires pour suivre ce cours
Draft
Les outils nécessaires pour suivre ce cours
Draft
Mettre en place VSCode pour travailler !
Draft
Mettre en place VSCode pour travailler !
Draft
Voir ou revoir les bases de React avant de commencer
Draft
Voir ou revoir les bases de React avant de commencer
ui-24px-outline-1_lock
Symfony 4 #01 - Mise en place de l'application
Symfony 4 #01 - Mise en place de l'application
Draft
Introduction
Draft
Introduction
Draft
Création d'une application Symfony 4 et mise en place de la base de données
Draft
Création d'une application Symfony 4 et mise en place de la base de données
Draft
Mise en place des Clients : l'entité Customer
Draft
Mise en place des Clients : l'entité Customer
Draft
Mise en place des Factures : l'entité Invoice
Draft
Mise en place des Factures : l'entité Invoice
Draft
Fixtures : Créer un jeu de fausses données
Draft
Fixtures : Créer un jeu de fausses données
Draft
Ajout d'un champ `chrono` sur l'entité Invoice
Draft
Ajout d'un champ `chrono` sur l'entité Invoice
Draft
Mise en place du système d'authentification : l'entité User
Draft
Mise en place du système d'authentification : l'entité User
Draft
Fixtures : de faux utilisateurs dans notre base de données
Draft
Fixtures : de faux utilisateurs dans notre base de données
Draft
Fixtures : Gérer les chronos et la sécurité des mots de passe
Draft
Fixtures : Gérer les chronos et la sécurité des mots de passe
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
ApiPlatform #01 : Mise en place et découverte
ApiPlatform #01 : Mise en place et découverte
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Installer le composant API Platform sur l'application Symfony grâce à Composer
Draft
Installer le composant API Platform sur l'application Symfony grâce à Composer
Draft
Création de notre première Ressource grâce à l'annotation @ApiResource
Draft
Création de notre première Ressource grâce à l'annotation @ApiResource
Draft
Présentation du logiciel PostMan pour tester notre API REST
Draft
Présentation du logiciel PostMan pour tester notre API REST
Draft
Le modèle de maturité de Richardson
Draft
Le modèle de maturité de Richardson
Draft
Découverte du format JSON-LD : JSON Linked Data
Draft
Découverte du format JSON-LD : JSON Linked Data
Draft
Le concept d'IRI (adresses uniques) dans le format JSON-LD
Draft
Le concept d'IRI (adresses uniques) dans le format JSON-LD
Draft
Le fichier de configuration d'API Platform
Draft
Le fichier de configuration d'API Platform
Draft
Gestion de la pagination par défaut sur nos collections
Draft
Gestion de la pagination par défaut sur nos collections
Draft
Surcharger la configuration pour une ressource en particulier
Draft
Surcharger la configuration pour une ressource en particulier
Draft
Configurer le nombre d'éléments avec l'option itemsPerPage
Draft
Configurer le nombre d'éléments avec l'option itemsPerPage
Draft
Surcharger la configuration dans une Requête HTTP
Draft
Surcharger la configuration dans une Requête HTTP
Draft
Résumé : les 3 niveaux de configuration (globale, par ressource et par requête)
Draft
Résumé : les 3 niveaux de configuration (globale, par ressource et par requête)
Draft
Donner un ordre par défaut à nos résultats
Draft
Donner un ordre par défaut à nos résultats
Draft
SearchFilter : permettre une recherche sur nos résultats
Draft
SearchFilter : permettre une recherche sur nos résultats
Draft
OrderFilter : permettre d'ordonner (trier) nos résultats
Draft
OrderFilter : permettre d'ordonner (trier) nos résultats
Draft
Cumuler les Filtres sur une ressource
Draft
Cumuler les Filtres sur une ressource
Draft
Appliquer un filtre sur une propriété d'une ressource liée
Draft
Appliquer un filtre sur une propriété d'une ressource liée
Draft
Conclusion de la section
Draft
Conclusion de la section
ui-24px-outline-1_lock
Exercices et mise en pratique
Exercices et mise en pratique
Draft
EXERCICE #01 - Bootstraper une API
Draft
EXERCICE #01 - Bootstraper une API
Draft
EXERCICE #01 - Correction
Draft
EXERCICE #01 - Correction
Draft
EXERCICE #02 - Pagination et ordre
Draft
EXERCICE #02 - Pagination et ordre
Draft
EXERCICE #02 - Correction
Draft
EXERCICE #02 - Correction
Draft
EXERCICE #03 - Filtrage de recherche
Draft
EXERCICE #03 - Filtrage de recherche
Draft
EXERCICE #03 - Correction
Draft
EXERCICE #03 - Correction
ui-24px-outline-1_lock
ApiPlatform #02 : comprendre la sérialisation et la désérialisation
ApiPlatform #02 : comprendre la sérialisation et la désérialisation
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Comprendre les concepts de Sérialisation et Désérialisation
Draft
Comprendre les concepts de Sérialisation et Désérialisation
Draft
Appliquer un groupe de sérialisation à l'entité Customer
Draft
Appliquer un groupe de sérialisation à l'entité Customer
Draft
Appliquer un groupe de sérialisation à l'entité Invoice
Draft
Appliquer un groupe de sérialisation à l'entité Invoice
Draft
Gérer la sérialisation des ressources liées
Draft
Gérer la sérialisation des ressources liées
Draft
Le problème des boucles infinies lors de la sérialisation
Draft
Le problème des boucles infinies lors de la sérialisation
Draft
Extraction des données liées au Customer
Draft
Extraction des données liées au Customer
Draft
Le concept de champs calculés
Draft
Le concept de champs calculés
Draft
ApiPlatform #02 : Un petit Quiz ? 💪😉
Draft
ApiPlatform #02 : Un petit Quiz ? 💪😉
ui-24px-outline-1_lock
ApiPlatform #03 - Les opérations possibles sur notre API REST
ApiPlatform #03 - Les opérations possibles sur notre API REST
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Les 5 opérations de base sur les collections ou sur les items
Draft
Les 5 opérations de base sur les collections ou sur les items
Draft
Activer / Désactiver des opérations sur une ressource
Draft
Activer / Désactiver des opérations sur une ressource
Draft
Configurer une opération
Draft
Configurer une opération
Draft
Le concept de sous-ressource (SubResource)
Draft
Le concept de sous-ressource (SubResource)
Draft
Configurer une sous-ressource
Draft
Configurer une sous-ressource
Draft
Sous-ressource et groupes de sérialisation
Draft
Sous-ressource et groupes de sérialisation
Draft
Créer ses propres opérations
Draft
Créer ses propres opérations
Draft
ApiPlatform #03 : Un petit Quiz ? 💪😉
Draft
ApiPlatform #03 : Un petit Quiz ? 💪😉
ui-24px-outline-1_lock
ApiPlatform #04 - Validation des données
ApiPlatform #04 - Validation des données
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Validation lors de la création / modification d'un Customer
Draft
Validation lors de la création / modification d'un Customer
Draft
Validation simple lors de la création / modification d'une Invoice
Draft
Validation simple lors de la création / modification d'une Invoice
Draft
Validation de l'Invoice : le problème des types et le flag "disable_type_enforcement"
Draft
Validation de l'Invoice : le problème des types et le flag "disable_type_enforcement"
Draft
Création d'un normalizer personnalisé pour les dates
Draft
Création d'un normalizer personnalisé pour les dates
Draft
Validation lors de la création / modification d'un User
Draft
Validation lors de la création / modification d'un User
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
ApiPlatform #05 - Authentification avec JSON Web Token (JWT)
ApiPlatform #05 - Authentification avec JSON Web Token (JWT)
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Installation du bundle LexikJwtAuthentication pour gérer les JWT
Draft
Installation du bundle LexikJwtAuthentication pour gérer les JWT
Draft
Sécurisation des ressources pour notre API
Draft
Sécurisation des ressources pour notre API
Draft
Utiliser les ACL pour cibler précisément nos ressources
Draft
Utiliser les ACL pour cibler précisément nos ressources
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
ApiPlatform #06 - Intervenir aux moments clés grâce aux événements du Kernel
ApiPlatform #06 - Intervenir aux moments clés grâce aux événements du Kernel
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Mise à jour Symfony 5
Draft
Mise à jour Symfony 5
Draft
Comprendre le cycle de vie d'une Requête HTTP et les événements du Kernel
Draft
Comprendre le cycle de vie d'une Requête HTTP et les événements du Kernel
Draft
Intervenir sur la création d'un User pour hasher le mot de passe
Draft
Intervenir sur la création d'un User pour hasher le mot de passe
Draft
Intervenir sur la création d'un Customer pour le lier à l'utilisateur courant
Draft
Intervenir sur la création d'un Customer pour le lier à l'utilisateur courant
Draft
Intervenir sur la création d'une Invoice pour lui donner un chrono
Draft
Intervenir sur la création d'une Invoice pour lui donner un chrono
Draft
Intervenir sur la création du JWT pour enrichir ses données
Draft
Intervenir sur la création du JWT pour enrichir ses données
Draft
Extensions de Doctrine : modifier les requêtes DQL d'ApiPlatform
Draft
Extensions de Doctrine : modifier les requêtes DQL d'ApiPlatform
Draft
Extension de Doctrine : ajout du cas d'utilisateurs non connectés
Draft
Extension de Doctrine : ajout du cas d'utilisateurs non connectés
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
React #01 - Mise en place
React #01 - Mise en place
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Installation de Webpack Encore
Draft
Installation de Webpack Encore
Draft
Découverte de la configuration de WebPack
Draft
Découverte de la configuration de WebPack
Draft
Découverte des différents scripts de compilation WebPack
Draft
Découverte des différents scripts de compilation WebPack
Draft
Création de la page d'accueil de notre site qui portera l'application React
Draft
Création de la page d'accueil de notre site qui portera l'application React
Draft
Inclure les liens vers les fichiers compilés
Draft
Inclure les liens vers les fichiers compilés
Draft
Installation de React et des dépendances
Draft
Installation de React et des dépendances
Draft
Branchement de l'application React à notre page d'accueil
Draft
Branchement de l'application React à notre page d'accueil
ui-24px-outline-1_lock
React #02 - Listings et routage
React #02 - Listings et routage
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Création de la page d'accueil et de la barre de navigation
Draft
Création de la page d'accueil et de la barre de navigation
Draft
Mise en place du routage avec React Router Dom
Draft
Mise en place du routage avec React Router Dom
Draft
Création de la page de liste des Customers
Draft
Création de la page de liste des Customers
Draft
Appel HTTP vers notre API pour récupérer les Customers
Draft
Appel HTTP vers notre API pour récupérer les Customers
Draft
Permettre la suppression d'un Customer
Draft
Permettre la suppression d'un Customer
Draft
Suppression : l'approche optimiste et l'approche pessimiste
Draft
Suppression : l'approche optimiste et l'approche pessimiste
Draft
Mise en place d'une pagination sur la liste des Customers
Draft
Mise en place d'une pagination sur la liste des Customers
Draft
Refactorisation dans un composant de Pagination
Draft
Refactorisation dans un composant de Pagination
Draft
Paginer les données grâce à ApiPlatform
Draft
Paginer les données grâce à ApiPlatform
Draft
Permettre de rechercher un Customer
Draft
Permettre de rechercher un Customer
Draft
Refactorisation de la page des Customers
Draft
Refactorisation de la page des Customers
Draft
Création de la page de liste des Invoices
Draft
Création de la page de liste des Invoices
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
React #03 - Authentification JWT
React #03 - Authentification JWT
Draft
Création du formulaire de connexion
Draft
Création du formulaire de connexion
Draft
Connexion et récupération du JWT auprès de l'API
Draft
Connexion et récupération du JWT auprès de l'API
Draft
Refactorisation du formulaire de connexion
Draft
Refactorisation du formulaire de connexion
Draft
Permettre à l'utilisateur de se déconnecter
Draft
Permettre à l'utilisateur de se déconnecter
Draft
Mise en place des véritables liens dans la barre de navigation
Draft
Mise en place des véritables liens dans la barre de navigation
Draft
Charger le JWT dès le démarrage de l'application React
Draft
Charger le JWT dès le démarrage de l'application React
Draft
Donner de la réactivité lors de la connexion et de la déconnexion
Draft
Donner de la réactivité lors de la connexion et de la déconnexion
Draft
Prendre en compte l'état de l'authentification au démarrage de l'application
Draft
Prendre en compte l'état de l'authentification au démarrage de l'application
Draft
Naviguer automatiquement après une connexion ou une déconnexion
Draft
Naviguer automatiquement après une connexion ou une déconnexion
Draft
Créer des routes protégées et inaccessibles aux utilisateurs anonymes
Draft
Créer des routes protégées et inaccessibles aux utilisateurs anonymes
Draft
Refactoriser notre application en utilisant les Contexts de React
Draft
Refactoriser notre application en utilisant les Contexts de React
Draft
Refactoriser le fichier app.js et créer un composant <PrivateRoute />
Draft
Refactoriser le fichier app.js et créer un composant <PrivateRoute />
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
React #04 - Formulaires
React #04 - Formulaires
Draft
Création d'un composant <Field /> pour faciliter le développement de forms
Draft
Création d'un composant <Field /> pour faciliter le développement de forms
Draft
Customer : mise en place du formulaire
Draft
Customer : mise en place du formulaire
Draft
Customer : validation et erreurs
Draft
Customer : validation et erreurs
Draft
Customer : gérer la modification d'un customer
Draft
Customer : gérer la modification d'un customer
Draft
Naviguer après la sauvegarde d'un nouveau Customer
Draft
Naviguer après la sauvegarde d'un nouveau Customer
Draft
Customer : refactrisation du code
Draft
Customer : refactrisation du code
Draft
Invoice : mise en place du formulaire
Draft
Invoice : mise en place du formulaire
Draft
Invoice : création d'un composant <Select /> pour les listes déroulantes
Draft
Invoice : création d'un composant <Select /> pour les listes déroulantes
Draft
Invoice : validation et erreurs
Draft
Invoice : validation et erreurs
Draft
Invoice : gérer la modification d'une facture
Draft
Invoice : gérer la modification d'une facture
Draft
Invoice : refactorisation du code
Draft
Invoice : refactorisation du code
Draft
Register : création du formulaire d'inscription
Draft
Register : création du formulaire d'inscription
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
React #05 - Ergonomie et réactivité
React #05 - Ergonomie et réactivité
Draft
Afficher des notifications ultra cool avec React Toastify
Draft
Afficher des notifications ultra cool avec React Toastify
Draft
Créer des écrans de chargement avec React Content Loader
Draft
Créer des écrans de chargement avec React Content Loader
Draft
Ajouter les derniers liens manquants dans l'application
Draft
Ajouter les derniers liens manquants dans l'application
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
React #06 - Dernières retouches avant mise en production
React #06 - Dernières retouches avant mise en production
Draft
BONUS : On expérimente un cache pour accélérer l'application
Draft
BONUS : On expérimente un cache pour accélérer l'application
Draft
Centraliser la configuration dans un seul fichier
Draft
Centraliser la configuration dans un seul fichier
Draft
Conclusion et versionning du code avec GIT
Draft
Conclusion et versionning du code avec GIT
ui-24px-outline-1_lock
Déploiement
Déploiement
Draft
Introduction de la section
Draft
Introduction de la section
Draft
Injecter des variables d'environnement avec WebPack
Draft
Injecter des variables d'environnement avec WebPack
Draft
Découverte de Heroku
Draft
Découverte de Heroku
Draft
Heroku : associer notre dépôt GitHub
Draft
Heroku : associer notre dépôt GitHub
Draft
Heroku : Ajouter un addon pour MySQL
Draft
Heroku : Ajouter un addon pour MySQL
Draft
Heroku : Gérer la configuration
Draft
Heroku : Gérer la configuration
Draft
Heroku : Récupérer les logs de l'application
Draft
Heroku : Récupérer les logs de l'application
Draft
Heroku : premier déploiement, premier bug !
Draft
Heroku : premier déploiement, premier bug !
Draft
Heroku : correction du bug et redéploiement
Draft
Heroku : correction du bug et redéploiement
Draft
OVH : Mise en place
Draft
OVH : Mise en place
Draft
OVH : Installer composer sur notre mutualisé
Draft
OVH : Installer composer sur notre mutualisé
Draft
OVH : Génération de l'application React en local
Draft
OVH : Génération de l'application React en local
Draft
OVH : Repositionner ses variables d'environnement en local
Draft
OVH : Repositionner ses variables d'environnement en local
Bienvenue!
Entrez vos informations ci-dessous pour vous connecter.
Votre email
Mot de passe
Se connecter
Mot de passe oublié ?