Aller au contenu principal

API Platform - Introduction

Il est possible de créer des projets Symfony full-stack, incluant par défaut des composants tels que Doctrine, le Mailer, le Notifier, le Serializer, etc...mais également des projets orientés micro-services, API, ou console.

Dans le second cas, on va devoir installer nous-mêmes les dépendances dont on aura besoin. Si on veut travailler avec une base de données par exemple, alors on devra installer Doctrine.

Quand on veut réaliser des applications avec une librairie ou un framework JS, c'est la technologie JS choisie qui va se charger de toute l'interface et des interactions avec l'utilisateur. Notre projet Symfony devient donc réellement un projet back-end, qui ne gèrera pas d'interface. On va donc uniquement le faire fonctionner en mode API, et non full-stack.

Fonctionnement

On verra tout de même beaucoup de choses similaires en terme de fonctionnement. Par exemple, on pourra faire des contrôleurs, et la problématique est toujours de transformer une requête en réponse. Simplement, en mode API, on aura une application beaucoup plus légère, avec moins de composants installés par défaut.

Création d'un projet API​

Pour céer un projet en mode API, on va utiliser l'outil Symfony CLI :

symfony new my-project --version=6.4

Le projet créé par l'outil est beaucoup plus léger. On y trouve uniquement le composant Console, Dotenv, et quelques autres liés au framework. Mais nous n'avons plus toute la suite qui était installée en mode full-stack.

Si on liste les commandes disponibles, on constate qu'on n'a même pas le maker.

On va donc commencer par installer les composants dont on aura besoin.

Ensuite, on peut lancer le projet comme d'habitude avec la commande symfony serve --no-tls, mais le profiler n'apparaît pas sur la page d'accueil.

Installation de composants​

Pour travailler en local, on va installer quelques composants usuels, tels que le profiler, Doctrine, le maker, etc...

Une fois ces composants installés, on pourra alors installer API Platform.

Symfony Flex

Symfony Flex est déjà intégré au projet. On retrouvera donc l'exécution de recettes automatiques au sein de notre projet

Doctrine​

Pour installer le Bundle Doctrine, on peut utiliser son alias Flex :

composer require orm

La recette qui s'exécute nous crée automatiquement le fichier de configuration de Doctrine, les migrations, ajoute la variable d'environnement DATABASE_URL, etc...on pourra donc configurer l'accès à la base de données dans le fichier .env.local.

Profiler​

Le profiler peut être installé grâce au package symfony/profiler-pack. On peut utiliser l'alias profiler, et on veillera à l'ajouter en tant que dépendance de développement :

composer require --dev profiler

Si on relance l'application, on retrouve la Web Debug Toolbar en bas de page.

Maker​

Le maker peut quant à lui être installé avec l'alias maker :

composer require --dev maker

Fixtures​

Tout comme en mode full-stack :

composer require --dev orm-fixtures

On pourra ensuite installer Faker, au besoin.

Security​

Afin de pouvoir créer une classe d'utilisateurs et avoir de l'authentification et du contrôle d'accès, on peut ajouter le security-pack de Symfony :

composer require security

Démarrage du projet​

Une fois qu'on a les principaux composants installés, on peut créer nos entités et démarrer notre projet.

La seule différence est qu'on ne va pas créer d'interface avec Twig : on se concentrera sur les fonctionnalités back-end, la gestion de données, etc...

Twig

Si Twig est tout de même installé au sein du projet, c'est uniquement parce qu'on a installé le profiler

On va donc créer un système d'articles, catégories, auteurs, etc...au sein de cette application.