Introduction aux API REST
  • Qu'est qu'une API
  • API REST : Architecture basée sur le protocole HTTP
  • La requête HTTP (fonctionnement global)
  • La réponse HTTP (fonctionnement global)
  • Les contraintes de l'architecture REST
  • Le modèle de maturité de Richardson
Consommer une API (partie 1)
  • Introduction
  • Mise en place du projet
  • Lancer une requête HTTP
  • Les principes de la sérialisation
  • La méthode Décode
  • Création de la classe Region
  • La dénormalisation
  • La désérialisation
Consommer une API (partie 2)
  • Présentation de la fonctionnalité à développer
  • Création de la vue
  • Création du controller et de son traitement
  • Création du formulaire de recherche
  • Adaptation de la vue pour présélectionner la région précédemment sélectionnée
Créer une API REST et ses règles de validation (projet d'une bibliothèque)
  • Attention changement depuis la version 4.4
  • Création du projet et de la base de données
  • Création des entity nationalité et auteur
  • Création des entity genre, éditeur et livre
  • Génération des tables de la base de données
  • Résumé et conseils
  • Alimenter la base de données
  • Installer EasyAdmin
  • Une API pour la liste des genres
  • Une API show pour les genres
  • Attention changement de mode opératoire pour Postman
  • Une API create pour les genres
  • Une API update pour les genres
  • Une API delete pour les genres
  • La validation des données
  • Créations des API pour les auteurs
  • Particularités des objets imbriqués
API Platform (mise en place du projet)
  • Installer le bundle API Platform
  • API Platform, l'API auto-découvrable
  • Paramètrage par les annotations
  • Le tri par défaut des collections
  • Le SearchFilter
  • Le RangeFilter
  • Le OrderFilter
  • Le PropertyFilter
  • La pagination
  • Le fichier de configuration par défaut
  • Création des entity adhérent et prêt
  • Mise en place des fixtures pour les adhérents et prêts
  • Codage des fixtures pour les adhérents
  • Codage des fixtures pour les prêts
  • Encoder le password
  • Modification de la classe Adherent (implémentation de UserInterface)
  • l'annotation UniqueEntity
La gestion de l'authentification
  • L'authentification par JWT (Json Web Token)
  • Besoin d'OpenSSL pour la génération de clé publique et privé
  • Mise en place du JWT
  • Paramétrage du provider
  • Paramétrage du firewall
  • Paramétrage de l'access control
  • Création de la route login_check
  • Test sur Postman
  • Présentation de la notion de rôle
  • Modification de la classe Adherent
  • Mise à jour de la base de données
  • Modification des fixtures
  • Notion de hiérarchie de rôles
  • Quelques petites modifications
API Platform amélioration des annotations de l'entity Livre
  • Analyse de la future application
  • Analyse fine des annotations API Platform
  • Nettoyage et adaptations des filtres API Platform pour l'entity livre
  • Gestion des collectionOperations (GET) de l'entity livre (partie 1)
  • Modification du security.yaml pour visualiser les routes sans être connecté
  • Gestion des collectionOperations (GET) de l'entity livre (partie 2)
  • Gestion des collectionOperations (POST) de l'entity livre
  • Gestion des itemOperations (GET) de l'entity livre
  • Gestion des itemOperations (PUT et DELETE) de l'entity livre
  • Problèmes soulevés par la mutltitude de routes et de rôles
  • Modification des annotations par programmation : le contextBuilder
  • Finalisation des annotations sur l'entity livre
API Platform : Gestion des entity Prêt et Adhérent
  • Analyse des contraintes des annotations pour l'entity pret
  • Création du constructeur de l'entity "Pret"
  • Création des annotations pour l'entity "Pret"
  • Attention changement depuis la version de Symfony 4.3
  • Renseigner automatiquement l'adhérent connecté comme étant contracteur du prêt
  • Création d'une SubResource pour consulter les prêts d'un adhérent
  • Création des annotations de l'entity Adhérent
  • Normalisation d'informations externes à l'entity
API Platform et les événements Doctrine
  • Evolution de l'application et modification de la base de données
  • Présentation des événements Doctrine
  • Création de méthodes PrePersist, PreUpdate et PreRemove
  • Utilisation du preSubscriber pour lever les limites des méthodes précédentes