Créer une API REST avec Symfony

L’objectif de cet article est de présenter une façon de configurer le cadriciel Symfony afin de mettre en place une API REST côté serveur.

Il nous sera possible de configurer les routes de l’API et de protéger l’accès à certaines routes et ressources grâce au JSON Web Token. Finalement, afin de communiquer les spécifications de notre API, une documentation en-ligne sera générée et mise à jour.

Table des matières :

  1. Installer PHP et un environnement LAMP
  2. Configurer la base de données
  3. Installer le cadriciel Symfony 3.0
  4. Créer une entité Doctrine
  5. Créer des données de tests (fixtures)
  6. Installer et configurer les bundles essentiels pour un API REST
  7. Tester l’API REST basé sur Symfony 3.0 avec PHPUnit

Qu’est-ce que Symfony?

Symfony est un cadriciel MVC (Modèle Vue Contrôleur) développé en PHP par la compagnie SensioLabs. Le français Fabien Potencier est à l’origine de ce projet grandiose.

Aujourd’hui, plusieurs projets open source reposent sur des Bundles (modules) de Symfony.

Voici quelques exemples.

  • Laravel utilise la console, le HttpKernel et plusieurs autres modules de Symfony
  • Piwik utilise le module YAML de Symfony
  • Drupal a complètement été récrit avec Symfony 2.8

La communauté Symfony est très active et plusieurs bundles sont disponibles afin de développer votre application efficacement. Il est intéressant de constater qu’il est possible d’utiliser un bundle Symfony sans avoir à utiliser tout l’écosystème Symfony. Il vous est donc possible d’utiliser les outils suivants dans votre projet PHP sans installer Symfony.

  • SwiftMailer: Envoi de courriels
  • Monolog: Gestion des logs
  • Twig: Système de templating PHP
  • Doctrine: Doctrine est un ORM (Object Relational Mapping)

LAMP avec PHP7.0

Afin d’exécuter le code PHP du cadriciel Symfony 3.0, il est essentiel de mettre en place l’interpréteur PHP ainsi qu’un Système de gestion de base de données comme MySQL ou PostGreSQL.

LAMP : Linux Apache MySQL PHP

Cette procédure vous présente comment installer un LAMP sur Ubuntu en ligne de commande. Par contre, d’autres options comme XAMPP, MAMP et WAMP sont disponibles.

Installation du cadriciel Symfony 3

Afin de débuter le développement et l’exploration des outils mis à notre disposition, débutons par installer le cadriciel Symfony. La façon la plus simple de l’installer est avec l’outil d’installation fournir par l’équipe de Symfony.

Lancer le projet Symfony

Une fois le LAMP configuré et les fichiers de Symfony installés, les erreurs corrigés, il est possible de lancer le projet grâce à la console :

Suite à l’exécution de la commande server:run, un serveur web sera disponible à l’adresse http://localhost:8000.

 

Super, je veux mettre en place une base de données !

Bundles Symfony utiles pour l’API REST

Pour notre projet de développement d’un API REST, voici les bundles qui devront être utilisés et configurés.

  • FOSRestBundle : Création d’un API REST
  • JMSSerializerBundle : Sérialisation des objets en JSON et XML
  • LexikJWTAuthenticationBundle : Support du JSON Web Token (JWT)
  • NelmioCorsBundle : Gestion du CORS
  • NelmioApiDocBundle : Génération de la documentation de l’API REST
  • FOSUserBundle : Gestion des utilisateurs

Grâce à ces bundles, il sera relativement facile de mettre en place notre API REST. Par contre, le désavantage d’utiliser tous ces modules est bien entendu la courbe d’apprentissage.

 

Comments

comments

0 réponses

Répondre

Want to join the discussion?
Feel free to contribute!

Laisser un commentaire

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