Una API es un software que integra las aplicaciones que creamos con otras aplicaciones. El objetivo de su creación es compartir datos entre las aplicaciones que se han integrado.
La API RESTful/REST API es la aplicación de la API(Application Programming Interface). REST(Representational State Transfer)es una arquitectura de métodos de comunicación que utiliza el protocolo HTTP para el intercambio de datos donde este método se aplica a menudo en el desarrollo de aplicaciones. Con el objetivo de que el sistema tenga un buen rendimiento, sea rápido y fácil de desarrollar (escalar) especialmente en el intercambio y comunicación de datos.
Construir una API REST en Yii es en realidad bastante fácil. Puedes aprovechar el framework MVC existente, pero creas diferentes puntos de acceso a los que quieres que accedan diferentes tipos de servicios (no visitantes del sitio web).
Aquí, usamos un ejemplo para ilustrar cómo puedes construir un conjunto de APIs RESTful con poco esfuerzo de codificación. El Yii que usaremos es la plantilla avanzada yii2.
Supongamos que desea exponer los datos de usuario a través de API RESTful. La tabla de usuarios de este ejemplo la creaste cuando instalaste Yii por primera vez. Para saber como instalar Yii puedes ver en Como Instalar Yii2 Avanzado via Composer.
Pasos para Crear una API RESTful en Yii2 Avanzado
Otros artículos interesantes
A. Crear API de punto final
En laplantilla Yii2 Advanced tenemos un directorio backend y otro frontend. Para separar las características de la API, crearemos un nuevo directorio llamado «API» como punto final.
- Copia el directorio backend y renómbralo a «api».
- Edita el archivo«common/config/bootstrap.php» y añade un alias para «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');
- En el directorio «environments/dev», copia el directorio backend y renómbralo a «api». Del mismo modo para el directorio «environments / prod», por lo que se verá como la siguiente imagen
- Ajuste el archivo «environments/index.php» de la siguiente manera
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', ], ], ];
- En el directorio api que creamos antes, cambia todas las palabras «backend» por «api»
B. Configuración de Yii
- Crear un controlador
Crea un«UserController» archivo en el directorio «api/controllers» y copia los siguientes scripts
<?php namespace apicontrollers; use yii\rest\ActiveController; class UserController extends ActiveController { public $modelClass = 'common\models\User'; }
- Configuración de REGLAS Y URL de entrada JSON
Cambia el archivo «api/config/main.php» añadiendo la petición JSON y la regla URL como sigue:
return [ ......... 'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yiiwebJsonParser', ] ], ......... 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'user'], ], ] ............ ], ............ ];
- Cree un archivo «.htaccess» en el directorio «api/web/» y copie el siguiente código
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
C. Pruebas API
- Descargue Postman,y, a continuación, abra Postman. Haga una petición a la URL «http://localhost/yii2-advanced/api/web/users».
- O con el comando CURL
- También puede acceder a través de un navegador con la URL «»http://localhost/yii2-advanced/api/web/users»».