Symfony 4 est la dernière version du framework PHP de SensioLabs. Nous allons voir à travers cet article comment créer un système d’API rapidement avec cette version du framework. Comme pré-requis, il faut avoir php et composer installés sur votre système ainsi qu’une base de données que nous allons nommer « blog ».

Introduction de Symfony Flex

Symfony Flex est le nouvel outil qui permet l’automatisation de la plupart des tâches pour intégrer une nouvelle dépendance (installation, mise à jour, suppression et configuration). L’automatisation est réalisée à l’aide de « recipes » qui contiennent les directives à lancer pour la gestion de la dépendance. Les recipes sont disponibles sur le site Web https://symfony.sh .

Comment cela fonctionne concrètement?

C’est assez simple au niveau du développement, il suffit d’utiliser la commande traditionnelle composer require <nom>, donc jusque là rien ne change. La différence se situe dans le fait que composer va d’abord regarder si le nom demandé est associé à une recipe si oui, il va utiliser les directives de cette dernière. Dans le cas contraire, composer va utiliser classiquement le dépôt packgist afin de récupérer la dépendance.

Installation du projet Symfony

Afin d’installer notre projet, nous allons partir d’une recipe qui délivre une base de travail pour notre système d’API. La recipe qui nous intéresse est « api-platform/api-pack », nous voyons sur le site qu’il existe des alias au nom de cette recette « api » ou « api-platform ».

Vous devez maintenant configurer votre base de données dans le fichier .env à la racine de votre projet :

Le setup est maintenant terminé et si vous tentez d’accéder à l’URL (remplacer éventuellement l’adresse par votre configuration) : http://127.0.0.1:8000/api, vous aurez la page suivante :

A ce stade, la plateforme est fonctionnelle mais rien n’est configuré, nous allons créer maintenant  un exemple basique d’API.

Création de nos entités

Dans notre exemple, les APIs vont servir les entités de notre application, nous allons donc commencer par définir notre entité blog.

Pour information, Symfony 4 a changé de philosophie et n’embarque plus tous les composants possibles, nous allons pour nous simplifier la vie installer l’outil maker qui va nous permettre du code source (en respectant l’architecture proposé par défaut par Symfony) à partir de la console.

Ensuite nous pouvons créer notre entité à l’aide de l’outil make fournit par Symfony

J’ai renseigné les informations demandé par le prompt afin d’obtenir l’entité suivante :

A ce stade, nous avons notre entité qui est généré dans /src/Entity/Blog.php.

Nous allons modifier cette entité pour indiquer à API platform de la gérer en tant que ressource d’API.

Pour ce faire, il suffit d’importer une annotation (ligne 5) et d’utiliser l’annotation @ApiResource dans l’entête de la classe (ligne 9).

Et voilà! Nous pouvons maintenant nous rendre sur la page http://127.0.0.1:8000/api et nous pouvons remarquer que le système a automatiquement généré nos APIs :

Pour information, vous pouvez voir le détail des opérations en cliquant sur une opération, par exemple voici le détail de la partie GET :

Cette interface fournit la possibilité également de tester directement vos API, ce qui est très pratique. Nous pouvons remarquer aussi, que le système fournit plusieurs formats possibles dont notamment json, html, xml, etc…

Vous pouvez maintenant utiliser des outils comme Postman pour interagir avec ces APIs.

Conclusion

Symfony 4 et API Platform fournissent la possibilité de mettre en place un système d’API très simplement. Nous reviendrons dans une prochaine série d’articles sur une utilisation plus avancé d’API Platform (personnalisation des routes, API custom, etc…).

Catégories : Informatique

0 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.