Partie 2/3 - Installation et configuration d'API Platform

API Platform Logo

4 juin 2021

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:

  • "get" qui va récupérer une ressource en particulier 
  • "put" qui va modifier une ressource.
  • "delete" qui va supprimer une ressource.
  • "patch" qui va appliquer une modification partielle d’une ressource.

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 ?