Cet article est la seconde partie d'une série :
Rappel du contexte : Lors d'un projet Bolt CMS, nous avons mis en œuvre un formulaire de modification de ses données personnelles dans un annuaire. L’individu disposait d’informations dont les champs (nom, prénom, téléphone, email, adresse, profession ...) et le but était de pouvoir modifier, ajouter ou supprimer ses informations personnelles.
Dans le cadre de notre projet, nous avons utilisé API Platform dans nos entités pour notre formulaire.
Alors, qu'est ce qu'API Platform ?
API Platform, permet la création automatique de CRUD (Create Read Update Delete) pour nos entités en respectant les standards de PHP et Symfony. Il permet d’ordonner et de filtrer nos données plus facilement. Dans notre cas, nous l’avons utilisé pour mettre à jour et sauvegarder les données modifiées au serveur.
Comment le configurer et l'installer sur notre projet ?
Pour commencer à utiliser API Platform sur notre projet Symfony, on doit tout d’abord installer les bundles nécessaires en utilisant Composer:
composer require api
Pour initialiser une API Platform sur une entité, il faut ajouter ce code ci-dessous:
<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
/**
* @ApiResource(
* collectionOperations={"get", "post"},
* itemOperations={"get", "put", "delete", "patch"}
* )
Pour une API, nous avons 2 types d’opérations : collectionOperations et itemOperations.
Dans un premier temps, CollectionOperations agit sur la collection de ressources autrement dit sur une liste d’entités. Les valeurs possibles pour cette opération sont le “get” qui va récupérer la liste des ressources et “post” pour créer un nouvel élément.
Et dans un second temps, ItemOperations agit sur une ressource individuelle qui contrairement à la CollectionOperation possède un id en paramètre. Les valeurs possibles pour cette opération sont:
Pour accéder à la route où se trouve ces API, on utilise en général le prefix /api (par exemple http://127.0.0.1/api) mais cela reste modifiable en ajoutant ce code et sauvegarder les préférences que l’on souhaite :
api_platform:
resource: .
type: api_platform
prefix: /api
api_entrypoint:
path: '%bolt.backend_url%/api'
controller: api_platform.swagger.action.ui
Nous allons voir dans une dernière partie, qu'est-ce qu'AlpineJS ? Et comment l'a-t-on utilisé dans notre projet Bolt CMS pour le formulaire ?
Pour célébrer la sortie de Dataflow 5 pour Symfony 7, voici un retour d'expérience sur ...
🎯 Nous relevons le défi de lancer un grand concours : Vous faire gagner un ...
Comment calculer dynamiquement des frais de port ? La documentation officielle qui explique comment créer ...
Comment créer un nouveau type d'attribut produit dans Ibexa Commerce ?
A la recherche d'un poste de travail temporaire ou permanent ? Vous recherchez un environnement ...
Après une découverte de surface d'Ibexa Commerce, entrons plus dans le détail pour comprendre son ...
Ibexa DXP propose un module pour gérer des produits pour la réalisation d'un site e-commerce. ...
Voici une présentation d'IbexaMailing, un module qui ajoute la gestion des newsletters à Ibexa. IbexaMailing est ...
C'est la dernière occasion de vous souhaitez le meilleur pour cette année 2024 et surtout ...
Pour célébrer la sortie de Dataflow 5 pour Symfony 7, voici un retour d'expérience sur ...
🎯 Nous relevons le défi de lancer un grand concours : Vous faire gagner un ...
Comment calculer dynamiquement des frais de port ? La documentation officielle qui explique comment créer ...
Comment créer un nouveau type d'attribut produit dans Ibexa Commerce ?
A la recherche d'un poste de travail temporaire ou permanent ? Vous recherchez un environnement ...
Après une découverte de surface d'Ibexa Commerce, entrons plus dans le détail pour comprendre son ...
Ibexa DXP propose un module pour gérer des produits pour la réalisation d'un site e-commerce. ...
Voici une présentation d'IbexaMailing, un module qui ajoute la gestion des newsletters à Ibexa. IbexaMailing est ...
C'est la dernière occasion de vous souhaitez le meilleur pour cette année 2024 et surtout ...