INTRODUCTION À LA CRÉATION D’UNE API REST AVEC LARAVEL 10

Bienvenue dans notre tutoriel express sur la création d’une API REST avec Laravel. Apprenez rapidement à installer Laravel, à gérer des utilisateurs via des opérations CRUD, et à manipuler des ressources avec MySQL. Ce guide vous équipe pour créer et tester efficacement votre propre API. Lancez-vous dès maintenant dans l’apprentissage pratique avec Laravel !

  1. Comprendre les fondamentaux – Familiarisez-vous avec les bases de REST et son intégration avec Laravel.
  2. Prérequis – Découvrez ce dont vous avez besoin pour démarrer, y compris la configuration initiale.
  3. Les Migrations – Apprenez à structurer et modifier votre base de données efficacement.
  4. Les Models– Créez des modèles pour interagir avec les données.
  5. Les Controllers– Découvrez comment gérer la logique de l’application et les requêtes entrantes.
  6. Les Routes– Définissez les chemins pour accéder et interagir avec votre API.

Comprendre les fondamentaux

Dans le monde dynamique du développement web, l’API (Application Programming Interface) se révèle être un outil incontournable. Une API est un ensemble complexe de définitions et de protocoles essentiels pour la communication et l’échange de données ou de services entre différentes applications.

La méthode REST (Representational State Transfer), un style d’architecture logicielle, s’impose avec ses contraintes spécifiques pour le développement efficace de services web. Elle se distingue par sa capacité à faciliter l’interaction entre différents systèmes informatiques.

Le format JSON (JavaScript Object Notation), standard dans l’écosystème du développement web, joue un rôle clé en représentant les données structurées de manière similaire aux objets JavaScript, facilitant ainsi leur manipulation et leur transfert entre applications.

Copier

Lorsqu’on parle d’une « API REST » , on fait référence à une API qui respecte les contraintes architecturales du style REST. Dans ce guide, notre objectif est de démontrer comment configurer une API REST qui renvoie des données en format JSON dans un projet Laravel. Le processus comprendra d’abord l’identification des prérequis nécessaires pour l’API, suivi par la mise en place d’un contrôleur dédié à l’API. Ensuite, nous procéderons à la définition des routes de l’API, pour finalement compléter les méthodes au sein du contrôleur. Chaque étape est conçue pour construire progressivement une API REST fonctionnelle et efficace dans l’environnement de Laravel.

Prérequis

Configuration de l’Environnement pour Laravel 10

Pour initier un projet avec Laravel 10, un environnement local est indispensable. Ce dernier inclut un serveur web, tel qu’Apache ou Nginx, pour exécuter PHP, ainsi qu’un système de gestion de base de données. Des solutions intégrées comme WAMP (pour Windows), MAMP (pour macOS) ou XAMPP (pour Linux) sont recommandées. Ces plateformes offrent non seulement un serveur Apache et MySQL, mais également des interfaces pratiques pour la gestion de vos bases de données et d’autres outils utiles.

Il est crucial de choisir des versions récentes de ces logiciels, en s’assurant qu’elles supportent PHP 8.1 à 8.3, idéales pour Laravel 10. Vous pouvez télécharger WAMP, MAMP ou XAMPP selon votre système d’exploitation.

Installation de Composer

Composer, un outil essentiel pour la gestion des dépendances en PHP, facilite l’installation de Laravel ainsi que d’autres bibliothèques nécessaires. Ce gestionnaire s’appuie sur PHP, déjà inclus dans les packages WAMP, MAMP ou XAMPP.

Une fois que vous avez installé tous les prérequis pour Laravel 10, vous pouvez créer un projet via Composer en suivant ces étapes :

Ouvrez une invite de commande ou une console et accédez au répertoire où vous souhaitez créer votre projet.

Exécutez la commande suivante :

Copier

Cette commande créera un dossier nommé « blog » dans le répertoire courant, contenant tous les fichiers et dossiers nécessaires pour un projet Laravel.

Accédez au dossier du projet avec la commande cd et démarrez le serveur en exécutant la commande suivante :

Copier

Cela ouvrira un serveur local sur le port 8000. Vous pouvez maintenant accéder à votre projet dans votre navigateur à l’adresse http://localhost:8000.

Le projet Laravel créé par défaut comprend les éléments suivants :

Un dossier « app » contenant les fichiers et dossiers du cœur de l’application, tels que les contrôleurs, les modèles, les vues et les routes.

Un dossier « config » contenant les fichiers de configuration de l’application.

Un dossier « database » contenant les fichiers de migration, de seeds et de connexion à la base de données.

Un dossier « public » contenant les fichiers statiques de l’application, tels que les images, les CSS et les JavaScript.

Un dossier « tests » contenant les fichiers de test de l’application.

Vous pouvez personnaliser votre projet Laravel en ajoutant ou en supprimant des fichiers et des dossiers. Vous pouvez également modifier les fichiers de configuration pour ajuster le comportement de l’application.

Modifier la configuration de Laravel

Ouvrez le fichier .env situé à la racine de votre projet Laravel.

Créer votre base de données, trouvez les lignes suivantes renseigner les informations de votre base de données  :

Copier

Les Migrations

Les migrations dans Laravel sont un moyen de gérer le schéma de votre base de données. Elles vous permettent de créer, de modifier ou de supprimer des tables, des colonnes, des index et d’autres éléments de votre base de données.

Les migrations sont stockées dans le dossier database/migrations de votre projet Laravel. Chaque migration est un fichier PHP qui contient deux méthodes : up() et down().

La méthode up() est utilisée pour créer ou modifier les éléments de votre base de données. La méthode down() est utilisée pour supprimer ou restaurer les éléments de votre base de données.

Exemple de migration

Le fichier de migration 2014_10_12_000000_create_users_table.php crée la table users dans votre base de données. Le code suivant montre le contenu de ce fichier :

Copier

La méthode up() de cette migration crée la table users avec les colonnes suivantes :

  • id : un champ int auto-incrémenté qui est la clé primaire de la table.
  • name : un champ string qui stocke le nom de l’utilisateur.
  • email : un champ string qui stocke l’adresse e-mail de l’utilisateur.
  • email_verified_at : un champ timestamp qui stocke la date et l’heure à laquelle l’adresse e-mail de l’utilisateur a été vérifiée.
  • password : un champ string qui stocke le mot de passe de l’utilisateur.
  • remember_token : un champ string qui est utilisé pour maintenir la session de l’utilisateur.
  • created_at : un champ timestamp qui stocke la date et l’heure à laquelle l’utilisateur a été créé.
  • updated_at : un champ timestamp qui stocke la date et l’heure à laquelle l’utilisateur a été mis à jour.

La méthode down() de cette migration supprime la table users de votre base de données.

Exécuter les migrations

Pour exécuter les migrations, vous pouvez utiliser la commande suivante :

Copier

Cette commande exécutera toutes les migrations qui n’ont pas encore été exécutées.

Vous pouvez également exécuter des migrations individuelles en utilisant les commandes suivantes :

Copier

Cette commande exécutera la migration située dans le répertoire path/to/migration.

Générer des migrations

Pour générer une nouvelle migration, vous pouvez utiliser la commande suivante :

Copier

Cette commande générera une nouvelle migration avec le nom create_table_name.

Vous pouvez également spécifier les colonnes que vous souhaitez ajouter à la table en utilisant l’option -m. Par exemple, la commande suivante générera une nouvelle migration qui ajoute une colonne age à la table users :

Copier

Les migrations sont un outil puissant qui vous permet de gérer le schéma de votre base de données de manière simple et efficace. En utilisant les migrations, vous pouvez garantir que votre base de données est toujours cohérente et à jour.

Les Models

Laravel fournit des modèles pour faciliter l’accès aux données de la base de données. Les modèles sont des classes PHP qui représentent une table de la base de données.

Dans notre exemple, nous avons créé un modèle User pour représenter la table users de la base de données. Le modèle User contient les propriétés suivantes :

  • id : l’identifiant de l’utilisateur
  • name : le nom de l’utilisateur
  • email : l’adresse e-mail de l’utilisateur
  • password : le mot de passe de l’utilisateur

Vous pouvez créer le modèle User en ajoutant le code suivant au fichier app/Models/User.php :

Copier

La propriété fillable définit les colonnes de la table users qui peuvent être remplies lors de la création ou de la mise à jour d’un utilisateur.

La propriété hidden définit les colonnes de la table users qui ne seront pas renvoyées par les méthodes de récupération du modèle.

Dans notre exemple, nous avons défini la propriété fillable pour inclure les colonnes name et email. Cela signifie que ces colonnes peuvent être transmises au modèle lors de la création ou de la mise à jour d’un utilisateur.

Nous avons également défini la propriété hidden pour inclure la colonne password. Cela signifie que cette colonne ne sera pas renvoyée par les méthodes de récupération du modèle.

Cela permet de protéger le mot de passe de l’utilisateur et de ne pas le renvoyer à une application cliente.

Les Controllers

Création d’un contrôleur

La commande php artisan make:controller permet de créer un nouveau contrôleur dans votre projet Laravel. Le nom du contrôleur est spécifié par l’argument name.

L’option -m permet de spécifier le modèle que le contrôleur utilisera. L’option -api permet de créer un contrôleur API.

Exemple

La commande suivante crée un contrôleur nommé UserController dans le dossier app/Http/Controllers. Le contrôleur utilisera le modèle User et sera un contrôleur API :

Copier

Contenu du contrôleur

Le contrôleur créé par la commande php artisan make:controller contient les méthodes suivantes :

  • index() : Affiche une liste d’objets.
  • show() : Affiche un objet.
  • store() : Crée un nouvel objet.
  • update() : Met à jour un objet existant.
  • destroy() : Supprime un objet existant.

Voici un exemple de contenu que vous pouvez ajouter au contrôleur :

Copier

La commande php artisan make:controller est un outil pratique pour créer des contrôleurs dans votre projet Laravel. Les contrôleurs sont utilisés pour gérer les requêtes HTTP entrantes et générer des réponses HTTP sortantes.

Les Routes

Les routes définissent les points d’entrée de votre API, qui sont les URL que les clients utilisent pour accéder aux ressources de votre API. Dans Laravel, les routes sont généralement définies dans le fichier routes/api.php.

Utilisation de api::route()

Laravel fournit une méthode pratique appelée api::route() pour générer des routes API. Cette méthode prend une définition de route en argument et renvoie une instance de Route.

Voici un exemple d’utilisation de api::route() pour définir une route pour récupérer tous les utilisateurs :

Copier

Chacune de ces routes est associée à une action de contrôleur. L’action de contrôleur est responsable de la logique métier qui traite la requête.

Route GET /users

La route GET /users renvoie une liste de tous les utilisateurs. L’action de contrôleur associée à cette route est index().

Route POST /users

La route POST /users crée un nouvel utilisateur. L’action de contrôleur associée à cette route est store().

Route GET /users/{id}

La route GET /users/{id} renvoie un utilisateur spécifique. L’action de contrôleur associée à cette route est show().

Route PUT /users/{id}

La route PUT /users/{id} met à jour un utilisateur existant. L’action de contrôleur associée à cette route est update().

Route DELETE /users/{id}

La route DELETE /users/{id} supprime un utilisateur existant. L’action de contrôleur associée à cette route est destroy().

Il est possible également de créer les routes de cette manière.

Copier

Exécution des routes avec Postman

Pour tester les routes de votre API Laravel avec Postman, procédez comme suit :

  1. Ouvrez Postman.
  2. Créez une nouvelle collection.
  3. Nommez la collection « Laravel API ».
  4. Créez une nouvelle requête.
  5. Définissez le type de requête sur « GET ».
  6. Définissez l’URL de la requête sur /api/users.
  7. Cliquez sur le bouton « Envoyer ».

Postman exécutera la requête et affichera la réponse. Si la requête a réussi, vous devriez voir une réponse HTTP 200. Le corps de la réponse contiendra une liste de tous les utilisateurs de votre base de données.

Vous pouvez tester les autres routes de votre API de la même manière. Voici quelques exemples supplémentaires de requêtes que vous pouvez utiliser.

  • Récupération d’un utilisateur spécifique
Copier
  • Création d’un nouvel utilisateur
Copier
    • Mise à jour d’un utilisateur existant
Copier
  • Suppression d’un utilisateur existant
Copier

Les routes sont un élément essentiel de toute API. Elles permettent de définir les points d’entrée de votre API et de contrôler le flux des données.

En suivant les étapes de ce tutoriel, vous serez en mesure de créer rapidement et facilement une API RESTful avec Laravel

Envie d’en savoir plus sur le développement d’applications web ,sur le dev/ops ou la conception d’applications inscrivez-vous à notre formation Développeur web et web mobile ou Concepteur Développeur d’Application (CDA) afin de viser l’excellence, acquérir un savoir-faire concret dans le développement web et d’obtenir un diplôme national RNCP reconnus par l’État.