AccueilFramework PHPConstruire une API RESTful avec Yii2 : Guide Complet Débutant

Construire une API RESTful avec Yii2 : Guide Complet Débutant

Ce guide complet détaille les étapes pratiques pour construire une API RESTful en utilisant le template Yii2 Advanced. Vous apprendrez la configuration des endpoints, la création de contrôleurs et les méthodes de test d’API pour l’exposition des données. Ce tutoriel est conçu pour les développeurs souhaitant implémenter une architecture REST moderne et évolutive.

Une Interface de Programmation d’Applications (API) est une interface logicielle qui facilite l’intégration et l’échange de données entre applications. Une API RESTful est une implémentation d’API qui adhère aux principes de l’architecture REST (Transfert d’État Représentationnel). Cette architecture utilise le protocole HTTP standard pour la communication, ce qui en fait une solution performante, évolutive et facile à développer.

Construire une API RESTful dans Yii2 peut être réalisé efficacement. Le framework fournit une base MVC robuste et un support intégré pour le développement REST. Cet article vous guidera dans la création d’un endpoint API séparé, distinct de la logique typique du frontend et du backend.

Nous utiliserons une étude de cas d’exposition de données depuis une table user. L’hypothèse de base est que vous avez installé avec succès le template Yii2 Advanced. Sinon, vous pouvez consulter la documentation officielle de Yii Framework pour le guide d’installation.

Étapes pour Implémenter une API RESTful dans Yii2

Le processus d’implémentation comprend trois étapes principales : la préparation de l’endpoint, la configuration de l’application et les tests. Analysons chaque étape en détail.

1. Créer la Structure de Répertoires de l’API

La première étape consiste à créer un environnement de travail dédié pour l’API. Dans le template Yii2 Advanced, nous allons créer un nouveau répertoire d’application nommé api.

  1. Copiez l’intégralité du contenu du répertoire backend au même emplacement, puis renommez la copie en api.
  2. Ouvrez le fichier common/config/bootstrap.php. Ajoutez un alias pour le répertoire api en ajoutant la ligne suivante :
    Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
  3. Dans le répertoire environments, copiez le dossier backend à la fois dans dev et prod. Renommez chaque copie en api.
  4. Modifiez le fichier environments/index.php. Ajoutez les chemins de configuration pour le répertoire api dans les sections setWritable et setCookieValidationKey.
  5. Utilisez la fonction « Rechercher et Remplacer » dans votre éditeur de code. Remplacez toutes les occurrences de la chaîne backend par api dans tous les fichiers du dossier api nouvellement créé.
Créer un répertoire api à partir d'une copie de backend dans Yii2
Figure 1 : Le processus de duplication du répertoire backend en api.

2. Configurer le Contrôleur et les Règles d’URL

Une fois la structure prête, l’étape suivante consiste à configurer le contrôleur qui gérera les requêtes de l’API.

  1. Créer le Contrôleur de l’API. Créez un nouveau fichier nommé UserController.php dans le répertoire api/controllers. Remplissez-le avec le code suivant :
    <?php
    namespace api\controllers;
    use yii\rest\ActiveController;
    
    class UserController extends ActiveController
    {
        public $modelClass = 'common\models\User';
    }
    Ce contrôleur hérite de ActiveController, qui fournit automatiquement des endpoints RESTful complets (GET, POST, PUT, DELETE) pour le modèle User.
  2. Configurer le Gestionnaire d’URL. Ouvrez le fichier api/config/main.php. Ajoutez ou modifiez les composants request et urlManager dans le tableau components :
    'components' => [
        'request' => [
            'parsers' => [
                'application/json' => 'yii\web\JsonParser',
            ]
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'enableStrictParsing' => true,
            'showScriptName' => false,
            'rules' => [
                ['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
            ],
        ],
    ],
    Cette configuration active l’analyse des entrées JSON et définit les règles de routage pour le contrôleur User.
  3. Configurer le Serveur Web (Optionnel). Pour les serveurs Apache, créez un fichier .htaccess dans le dossier api/web avec le contenu suivant :
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php
    Ce fichier dirige toutes les requêtes vers le fichier principal index.php de Yii2.

3. Tester les Endpoints de l’API

Une fois la configuration terminée, vous pouvez tester les endpoints d’API créés. Voici quelques méthodes de test couramment utilisées.

  1. Utilisation de Postman. Téléchargez et installez Postman. Créez une nouvelle requête en utilisant la méthode GET et l’URL : http://localhost/[nom-de-votre-projet]/api/web/users. En cas de succès, vous recevrez une réponse JSON contenant les données utilisateur.
  2. Utilisation de cURL. Exécutez la commande suivante dans un terminal ou une invite de commandes :
    curl -H "Accept: application/json" "http://localhost/[nom-de-votre-projet]/api/web/users"
  3. Accès via le Navigateur. Ouvrez l’URL de l’endpoint dans un navigateur. Cependant, cette méthode n’est généralement adaptée qu’aux tests simples de requêtes GET.
Résultat du test d'API RESTful Yii2 dans Postman
Figure 2 : Résultat du test pour l’endpoint GET /users en utilisant Postman.

En complétant toutes les étapes ci-dessus, vous avez réussi à construire une API RESTful basique dans Yii2. Pour un développement ultérieur, envisagez d’ajouter des mécanismes d’authentification (comme JWT), d’autorisation, de limitation de débit et une bonne documentation de l’API. Consultez toujours la documentation officielle de Yii2 pour vous assurer que votre implémentation suit les meilleures pratiques actuelles.

Articles Récents