- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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