API REST avec Symfony 4 et API Platform + App Windev Mobile
4.4 (124 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
641 students enrolled

API REST avec Symfony 4 et API Platform + App Windev Mobile

Comment consommer et créer des API REST avec Symfony et API Platform, et exemple d'application en Windev Mobile
Bestseller
4.4 (124 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
641 students enrolled
Created by Rolland Stéphane
Last updated 5/2020
French
Current price: $34.99 Original price: $49.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 12 hours on-demand video
  • 25 articles
  • 12 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Qu'est qu'une API et plus particulièrement une API REST
  • Comment consommer une API REST avec Symfony 4 et 5
  • Comment créer une API REST avec Symfony 4 et 5 (le CRUD de A à Z)
  • Comment créer une API REST Full avec Symfony 4 et API Platform
  • Les principes de la sérialisation et désérialisation, normalisation et dénormalisation
  • L'authentification avec JWT (Json Web Token)
  • Une méthode progressive pour bien concevoir vostre API REST Full
Course content
Expand all 143 lectures 12:00:16
+ Consommer une API (partie 1)
8 lectures 27:59
Mise en place du projet
03:55
Lancer une requête HTTP
02:47
Les principes de la sérialisation
01:26
La méthode Décode
06:02
La dénormalisation
03:59
La désérialisation
03:00
+ Consommer une API (partie 2)
5 lectures 20:42
Présentation de la fonctionnalité à développer
01:02
Création du controller et de son traitement
04:08
Création du formulaire de recherche
09:43
Adaptation de la vue pour présélectionner la région précédemment sélectionnée
04:30
+ Créer une API REST et ses règles de validation (projet d'une bibliothèque)
17 lectures 01:45:36
Attention changement depuis la version 4.4
00:05
Création du projet et de la base de données
01:30
Création des entity genre, éditeur et livre
05:17
Génération des tables de la base de données
01:32
Résumé et conseils
00:46

Cette vidéo vous montrer comment importer un jeu d'essai dans la base de données

Alimenter la base de données
04:24

Cette vidéo vous montre comment installer et utiliser la recette EasyAdmin pour gérer un backEnd

Preview 04:39

Cette vidéo vous montre comment créer votre première API vous permettant de renvoyer la liste des genres, vous y verrez également la notion de "groups" de sérialisation.

Une API pour la liste des genres
14:32

Cette vidéo vous montre comment créer une API vous permettant de renvoyer les informations d'un genre en particulier dont l'id aura été passé en paramètre de l'URI.

Une API show pour les genres
03:15
Attention changement de mode opératoire pour Postman
00:10

Cette vidéo vous montre comment créer une API vous permettant de créer un genre en envoyant les informations par POST.

Preview 11:48

Cette vidéo vous montre comment créer les API update (méthode PUT) pour l'entity genre

Une API update pour les genres
08:23

Cette vidéo vous montre comment créer les API delete (méthode DELETE) pour l'entity genre

Une API delete pour les genres
03:11

Cette vidéo vous montre comment gérer la validation des données reçues (d'un formulaire par exemple) pour des opérations de "create" et "update" pour l'entity Genre.

La validation des données
15:57

Cette vidéo vous montre la création des API (CRUD) de l'entity Auteur

Créations des API pour les auteurs
08:46

Cette vidéo vous présente la particularité de traitement des objets imbriqués notamment pour les opérations "create" et "update"

Particularités des objets imbriqués
16:57
+ API Platform (mise en place du projet)
17 lectures 02:13:18

Cette vidéo vous montre comment installer le bundle Api Platform et je vous fais une petite présentation.

Installer le bundle API Platform
07:38

Cette vidéo vous montre comment API Platform sérialize les informations à l'aide de lien sur les "subresource" qui rend l'API auto-découvrable.

Preview 06:46

Cette vidéo vous montre comment paramétrer les annotations afin d'utiliser au mieux API Platform.

Paramètrage par les annotations
19:59

Cette vidéo vous montre comment trier par défaut les collections dans API Platform.

Le tri par défaut des collections
06:17

Cette vidéo vous montre comment utiliser le SearchFilter pour permettre l'utilisateur de filtrer les données retournées par API Platform.

Le SearchFilter
05:41

Cette vidéo vous montre comment utiliser le RangeFilter pour permettre l'utilisateur de filtrer des données numériques avec API Platform.

Le RangeFilter
03:49

Cette vidéo vous montre comment utiliser le OrderFilter pour permettre l'utilisateur de trier les données retournées par API Platform.

Le OrderFilter
04:39

Cette vidéo vous montre comment utiliser le PropertyFilter pour permettre l'utilisateur de filtrer les "colonnes" retournées par API Platform.

Preview 05:00

Cette vidéo vous montre comment utiliser la pagination avec API Platform.

La pagination
05:11

Cette vidéo vous montre de quoi est composé le fichier de configuration par défaut d'APIPlatfom et comment le surcharger pour l'ensemble des ressources, mais également comment personnaliser ces paramètres pour chaque ressource.

Le fichier de configuration par défaut
06:31

Cette vidéo vous montre comment créer les entity Adherent et Pret avec les relations entre elles.

Création des entity adhérent et prêt
09:20

Cette vidéo présente l'installation des deux bundles Fixtures et Faker qui vont nous être utiles pour la réalisation des fixtures

Mise en place des fixtures pour les adhérents et prêts
04:55

Cette vidéo vous montre comment créer des fixtures pour les adhérents

Codage des fixtures pour les adhérents
12:42

Cette vidéo vous montre comment créer des fixtures pour les prêts

Codage des fixtures pour les prêts
21:25

Cette vidéo vous montrer comment paramètrer votre application pour lui préciser que le mot de passe est crypté

Encoder le password
04:08

Cette vidéo vous montre comment modifier la classe Adherent pour qu'elle implémente la classe UserInterface

Modification de la classe Adherent (implémentation de UserInterface)
05:59

Cette vidéo vous montre comment rendre une propriété unique pour la classe grâce à l'annotation UniqueEntity

l'annotation UniqueEntity
03:18
+ La gestion de l'authentification
14 lectures 54:52

Cette vidéo vous explique le principe de l'authentifications d'application web et plus particulièrement par le JSON Web Token (JWT).

L'authentification par JWT (Json Web Token)
08:31
Besoin d'OpenSSL pour la génération de clé publique et privé
00:15

Cette vidéo vous explique comment mettre en place une authentification par JSON Web Token (JWT).

Mise en place du JWT
05:08

Cette vidéo vous montre comment modifier la section provider du sécurity.yaml

Paramétrage du provider
02:26

Cette vidéo vous montre comment modifier la section firewall du sécurity.yaml

Paramétrage du firewall
03:47

Cette vidéo vous montre comment modifier la section access control du sécurity.yaml

Paramétrage de l'access control
04:40

Cette vidéo vous montre comment créer la route login_check qui permettra de s'authentifier

Création de la route login_check
02:47

Cette vidéo vous montre comment tester l'authentification par JWT à l'aide de Postman

Test sur Postman
05:32

Cette vidéo présente la notion de rôle des utilisateurs de l'application

Présentation de la notion de rôle
01:26

Cette vidéo montre comment modifier la classe Adherent afin de prendre en compte la notion de rôle

Modification de la classe Adherent
05:54

Cette vidéo vous montre comment mettre à jours la base de données afin d'ajouter le nouveau champ "rôles"

Mise à jour de la base de données
01:28

Cette vidéo vous montre comment modifier les fixtures afin d'affecter un rôle à chaque utilisateur

Modification des fixtures
08:26

Cette vidéo vous montre comment il est possible de créer une hiérarchie de rôles

Notion de hiérarchie de rôles
01:19

Cette vidéo vous montre quelques modifications à apporter à notre code

Quelques petites modifications
03:13
+ API Platform amélioration des annotations de l'entity Livre
12 lectures 55:51

Dans cette vidéo nous allons analyser les besoins futurs de l'application

Analyse de la future application
02:02

Dans cette vidéo, nous allons analyser plus finement, en fonction des rôles, les contraintes de nos annotations

Analyse fine des annotations API Platform
04:23

Dans cette vidéo, nous opérons un petit nettoyage du code afin qu'il reflète notre analyse

Nettoyage et adaptations des filtres API Platform pour l'entity livre
01:15

Dans cette vidéo nous allons nous préoccuper des collectionOperations pour le verbe "GET" (première partie)

Gestion des collectionOperations (GET) de l'entity livre (partie 1)
04:32

Dans cette vidéo, nous allons modifier le fichier de configuration "sécurity.yaml" afin de pouvoir visualiser les routes API Platform sans avoir besoin de se connecter

Modification du security.yaml pour visualiser les routes sans être connecté
02:58

Dans cette vidéo nous allons nous préoccuper des collectionOperations pour le verbe "GET" (deuxième partie)

Gestion des collectionOperations (GET) de l'entity livre (partie 2)
08:09

Dans cette vidéo nous allons nous préoccuper des collectionOperations pour le verbe "POST"

Gestion des collectionOperations (POST) de l'entity livre
01:11

Dans cette vidéo nous allons nous préoccuper des itemOperations pour le verbe "GET"

Gestion des itemOperations (GET) de l'entity livre
02:16

Dans cette vidéo nous allons nous préoccuper des collectionOperations pour le verbe "PUT" et "DELETE"

Gestion des itemOperations (PUT et DELETE) de l'entity livre
05:34

Cette vidéo vous montre les problèmes rencontrés par la multitude de routes et de rôles qui rendent la lecture de l'API difficile notamment

Problèmes soulevés par la mutltitude de routes et de rôles
03:10

Cette vidéo vous montre comment modifier par programmation les annotations à la volée avec le contextBuilder

Modification des annotations par programmation : le contextBuilder
11:50

Cette vidéo vous montre la finalisation des annotations sur les livres en réutilisant notamment le contextBuilder pour modifier les annotations à la volée.

Finalisation des annotations sur l'entity livre
08:31
+ API Platform : Gestion des entity Prêt et Adhérent
8 lectures 34:06

Cette vidéo vous présente l'analyse des annotations pour l'entity "Pret"

Analyse des contraintes des annotations pour l'entity pret
02:58

Cette vidéo vous montre comment pré-remplir certaines informations à la création d'un prêt grâce au constructeur de la classe.

Création du constructeur de l'entity "Pret"
02:30

Cette vidéo vous montre la création de certaines annotations pour l'entity "Pret". Vous essayerez de créer le reste des annotations en fonction des contraintes énoncées.

Création des annotations pour l'entity "Pret"
04:57
Attention changement depuis la version de Symfony 4.3
00:18

Cette vidéo vous montre comment faire en sorte qu'à la création d'un prêt, ce soit l'utilisateur connecté qui soit automatiquement renseigné comme étant le destinataire du prêt (utilisation du subscriber)

Attention à partir de Symfony 4.3 la classe "GetResponseForControllerResultEvent" a été remplacée par "ViewEvent" ((plus d'informations ici : https://symfony.com/blog/new-in-symfony-4-3-simpler-event-dispatching)

la ligne "use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;" est donc remplacée par la ligne "use Symfony\Component\HttpKernel\Event\ViewEvent;" et la méthode getAuthenticatedUser pend donc un ViewEvent en paramètre comme ceci : public function getAuthenticatedUser(ViewEvent $event)

Renseigner automatiquement l'adhérent connecté comme étant contracteur du prêt
10:10

Cette vidéo vous montre comme consulter les prêts d'un adhérent en créant une route supplémentaire grâce à l'annotation "SubResource"

Création d'une SubResource pour consulter les prêts d'un adhérent
01:50

Vous devez créer les annotations de l'entity Adhérent en respectant les contraintes spécifiées sur le document.

Création des annotations de l'entity Adhérent
02:19

Vous allez voir comment normaliser des informations qui ne sont pas directement dans l'entity en créant des méthodes supplémentaires et en y associant une annotation.

Normalisation d'informations externes à l'entity
09:04
+ API Platform et les événements Doctrine
4 lectures 21:20

Cette vidéo vous présente une évolution de la base de données qui consiste à faire en sorte de pouvoir préciser si un livre est disponible ou non

Evolution de l'application et modification de la base de données
03:30

Cette vidéo vous présente les événements Doctrine, et dans quelle mesure nous allons en avoir besoin dans notre application.

Présentation des événements Doctrine
03:38

Cette vidéo vous présente la création de méthode qui vont se déclencher automatiquement à un certain moment du cycle de vie de l'objet.

Création de méthodes PrePersist, PreUpdate et PreRemove
08:39

Cette vidéo présente une autre manière d'agir durant le cycle de vie des objets en utilisant notamment la méthode précédemment créée "preSubscriber".

Utilisation du preSubscriber pour lever les limites des méthodes précédentes
05:33
+ API Platform et les controllers personnalisés
4 lectures 14:42

Cette vidéo vous présente de nouvelles fonctionnalités que nous allons mettre en place nécessitant des controllers personnalisés

Présentation de nouvelles fonctionnalités nécessitant des controllers perso
01:08

Cette vidéo va vous montrer comment créer un controller personnalisé permettant d'obtenir le nombre de prêts pour un adhérent donné.

Obtenir le nombre de prêts pour un adhérent
05:15

Cette vidéo va vous montrer comment créer un controller personnalisé permettant d'obtenir le nombre de prêts pour chaque adhérent.

Obtenir le nombre de prêts pour chaque adhérent
04:42

Cette vidéo va vous montrer comment créer un controller personnalisé permettant d'obtenir les 5 livres les plus demandés.

Obtenir les 5 livres les plus demandés
03:37
Requirements
  • Connaître Symfony 4 ou 5 (savoir l'installer , connaître son architecture et connaître les grands principes de la méthodologie MVC)
  • Connaître la notion de base de données relationnelles et de requêtes SQL simples
Description

Ce cours à pour objectif de faire découvrir les grands principes d'une API REST avec Symfony 4.

Je commence de façon progressive par une présentation des concepts (protocoles, contraintes ...), puis je poursuit en vous montrant comment utiliser (consommer) une API existante publique par l'utilisation de vue avec un formulaire de recherche.

Ensuite, je vous montre comment créer à partir d'un projet de bibliothèque construit de A à Z, comment créer sa propre API REST avec Symfony 4 (on y aborde les notions de sérialisation, déserialisation, normalisation, dénormalisation, décodage et encodage ...)

Enfin nous abordons l'application API Platform qui est une recette que l'on va intégrer à Symfony afin de générer de façon très rapide une API REST et sa documentation, le travail important sera alors de paramétrer sous forme d'annotations les différentes entity de votre application.

Nous apprendrons à authentifier nos utilisateurs à l'aide du Json Web Token (JWT).

Vous apprendrez à utiliser les événements doctrine et créer des controllers personnalisés.

En super Bonus, afin de pouvoir exploiter l'API ainsi développée, je vous montre comment créer une app mobile cross plateforme développée avec Windev Mobile. Je mets en avant dans cette application la structure du code avec de nombreux concepts objets.

Who this course is for:
  • Etudiants développeurs Symfony voulant s'initier au développement d'une API REST Full avec Symfony 4 ou 5
  • Développeur conscient que ne pas connaître les API est un manque pour leur devenir professionnel