BTS SIO2D
  • Accueil
  • Connexion
9 octobre 2024 par Mehdi ENNAJEH

Mise en Place des Groups et Filtres dans une API REST

Mise en Place des Groups et Filtres dans une API REST
9 octobre 2024 par Mehdi ENNAJEH

Table des matières

Toggle
  • Introduction
  • Création de la Base de Données
  • Mise en Place des Groups
  • Implémentation des Filtres
  • Tests et Validation

Introduction

Dans ce projet, nous avons développé une API en utilisant Symfony et API Platform. Une des fonctionnalités essentielles de cette API est la gestion des données via les groups et les filtres, permettant d'adapter les réponses de l'API aux besoins des utilisateurs tout en optimisant l'accès aux informations.

Création de la Base de Données

Avant de pouvoir exploiter les groups et les filtres, nous avons mis en place une base de données pour stocker nos entités :

  • Définition des Entités : Nous avons créé des entités clés comme User et Message.
  • Annotations des Propriétés : Chaque propriété a été annotée avec des métadonnées pour le mappage et des groups pour la sérialisation. Par exemple :
#[ORM\Column(type: 'string')] 
#[Groups(['user:list', 'user:item'])]
private $nom;

Mise en Place des Groups

Une fois la base de données prête, nous avons défini des groups pour gérer la sérialisation :

  • Message :
    • message:list : Affiche les informations essentielles d'une liste de messages.
    • message:item : Fournit le détail complet d'un message.
  • User :
    • user:list : Affiche les informations de base d'une liste d'utilisateurs.
    • user:item : Détails complets d'un utilisateur.

Grâce à ces groupes, seules les informations nécessaires sont renvoyées, améliorant ainsi la performance et la sécurité.

Implémentation des Filtres

Pour rendre l'API plus dynamique, nous avons mis en place des filtres :

  • Définition des Filtres : L'annotation #[ApiFilter] permet de filtrer des champs spécifiques. Pour l'entité User, nous avons ajouté des filtres sur id, nom et prenom.
  • Types de Filtres :
    • Exact : Permet une recherche stricte (ex. id=1).
    • Partiel : Permet une recherche approximative (ex. prenom=s).
  • Combinaison de Filtres : Il est possible d'affiner les résultats en combinant plusieurs critères.

Tests et Validation

Après l'implémentation des groups et des filtres, nous avons testé leur bon fonctionnement à l'aide de Postman. Certains ajustements ont été nécessaires pour assurer la conformité des réponses de l'API avec les attentes des utilisateurs.

Article précédentLes drama de LaravelArticle suivant III) Tests unitaires avec Angular

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

About The Blog

Nulla laoreet vestibulum turpis non finibus. Proin interdum a tortor sit amet mollis. Maecenas sollicitudin accumsan enim, ut aliquet risus.

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025

Catégories

  • Article Angular Killian
  • Article Clément
  • Article Unreal Engine Hugo
  • Cybersécurité
  • IA
  • Non classé
  • Projet Flutter KHM
  • Projet Hugo
  • Stage Clément
  • Stage Hugo
  • Stage Killian P
  • TP Clément

Méta

  • Inscription
  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR

Étiquettes

Article Développer son projet professionnel Flutter Gérer son identité professionnelle Java Stage Symfony TP

Why Lander

Lander is a design prepared
especially for the free version
of Rife WordPress Theme.

You can use this for free.
Make your website today.
Get Started Now!

Contact

734 Blackwell Street
Anchorage, Alaska
info@domain.com
+33 (0) 101 0000
+33 (0) 102 0000
Mon. - Fri. 8AM - 6PM

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025
Rife Wordpress Theme. Proudly Built By Apollo13