More

    [Yii2] Créer une API RESTful

    est un logiciel qui intègre les applications que nous créons avec d’autres applications. Le but de la création est de partager des données entre les applications qui ont été intégrées.

    L’API RESTful/REST API est l’application de l’API(Application Programming Interface). REST (Representational State Transfer) est une architecture de méthodes de communication qui utilise le protocole HTTP pour l’échange de données et cette méthode est souvent appliquée au développement d’applications. L’objectif est de faire en sorte que le système soit performant, rapide et facile à développer, notamment en ce qui concerne l’échange et la communication de données.

    Construire une API REST en Yii est en fait assez facile. Vous pouvez tirer parti du cadre MVC existant, mais vous créez différents points d’accès auxquels vous voulez accéder par différents types de services (et non par les visiteurs du site web).

    Ici, nous utilisons un exemple pour illustrer comment vous pouvez construire un ensemble d’API RESTful avec peu d’effort de codage. Le Yii que nous utiliserons est le modèle avancé yii2.

    Supposons que vous souhaitiez exposer les données des utilisateurs via des API RESTful. La table des utilisateurs de cet exemple a été créée lors de la première installation de Yii. Pour savoir comment installer Yii, vous pouvez consulter Comment installer Yii2 Advanced via Composer.

    Etapes pour créer une API RESTful sur Yii2 Advanced

    A. Créer des API d’extrémité

    Dans le Yii2 Advanced template, nous avons un répertoire backend et un répertoire frontend. Pour séparer les fonctionnalités API, nous allons créer un nouveau répertoire nommé « API » en tant que point final.

    1. Copiez le répertoire backend et renommez-le en « api ».
    yii2 api 01
    1. Modifiez le fichier« common/config/bootstrap.php » et ajoutez un alias pour « api ».
    <?php
    Yii::setAlias('@common', dirname(__DIR__));
    Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend');
    Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend');
    Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
    Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
    1. Dans le répertoire « environments/dev », copiez le répertoire backend et renommez-le en « api ». De même pour le répertoire « environments / prod », il ressemblera à l’image suivante
    yii2 api 02
    1. Ajustez le fichier « environments/index.php » comme suit
    return [
        'Development' = > [
            'path' = > 'dev',
            'setWritable' = > [
                ..........,
                'api/runtime',
                'api/web/assets',
            ],
    		..............
            'setCookieValidationKey' = > [
                ..........,
                'api/config/main-local.php',
            ],
        ],
        'Production' = > [
            'path' = > 'prod',
            'setWritable' = > [
    			..........,
                'api/runtime',
                'api/web/assets',
            ],
    		.............
    		'setCookieValidationKey' = > [
    			..........,
                'api/config/main-local.php',
            ],
        ],
    ];
    1. Dans le répertoire api que nous avons créé précédemment, remplacez tous les mots « backend » par « api »
    yii2 api 03

    B. Configuration de Yii

    1. Créer un contrôleur

    Créez unfichier « UserController » dans le répertoire « api/controllers » et copiez les scripts suivants

    <?php
    namespace apicontrollers;
    use yii\rest\ActiveController;
     
    class UserController extends ActiveController
    {
        public $modelClass = 'common\models\User';
    }
    1. Configuration des règles et de l’URL d’entrée JSON

    Modifiez le fichier « api/config/main.php » en ajoutant la requête JSON et la règle URL comme suit :

    return [
        .........
        'components' => [
            'request' => [
                'parsers' => [
                    'application/json' => 'yiiwebJsonParser',
                ]
            ],
            .........
            'urlManager' => [
                'enablePrettyUrl' => true,
                'enableStrictParsing' => true,
                'showScriptName' => false,
                'rules' => [
                    ['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
                ],
            ]
            ............
        ],
        ............
    ];
    1. Créez un fichier « .htaccess » dans le répertoire « api/web/ » et copiez le code suivant
    	RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . index.php

    C. Essais de l’API

    1. Téléchargez Postman, puis ouvrez Postman. Envoyez une requête à l’URL « http://localhost/yii2-advanced/api/web/users ».
    yii2 api 04
    1. Ou avec la commande CURL
    yii2 api 05
    1. Vous pouvez également y accéder par le biais d’un navigateur en utilisant l’URL «  »http://localhost/yii2-advanced/api/web/users » ».
    yii2 api 06

    Dernières articles