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.
- Copiez l’intégralité du contenu du répertoire
backendau même emplacement, puis renommez la copie enapi. - Ouvrez le fichier
common/config/bootstrap.php. Ajoutez un alias pour le répertoireapien ajoutant la ligne suivante :Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); - Dans le répertoire
environments, copiez le dossierbackendà la fois dansdevetprod. Renommez chaque copie enapi. - Modifiez le fichier
environments/index.php. Ajoutez les chemins de configuration pour le répertoireapidans les sectionssetWritableetsetCookieValidationKey. - Utilisez la fonction « Rechercher et Remplacer » dans votre éditeur de code. Remplacez toutes les occurrences de la chaîne
backendparapidans tous les fichiers du dossierapinouvellement créé.

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

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.


