Esta guía integral describe los pasos prácticos para construir una API RESTful utilizando la plantilla Yii2 Advanced. Aprenderás la configuración de endpoints, la creación de controladores y métodos de prueba de API para exponer datos. Este tutorial está diseñado para desarrolladores que buscan implementar una arquitectura REST moderna y escalable.
Una Interfaz de Programación de Aplicaciones (API) es una interfaz de software que facilita la integración y el intercambio de datos entre aplicaciones. Una API RESTful es una implementación de API que se adhiere a los principios de la arquitectura REST (Transferencia de Estado Representacional). Esta arquitectura utiliza el protocolo HTTP estándar para la comunicación, lo que la convierte en una solución performante, escalable y fácil de desarrollar.
Construir una API RESTful en Yii2 puede hacerse de manera eficiente. El framework proporciona una base MVC robusta y soporte integrado para el desarrollo REST. Este artículo te guiará en la creación de un endpoint de API separado, distinto de la lógica típica de frontend y backend.
Utilizaremos un caso de estudio de exposición de datos desde una tabla user. La suposición básica es que has instalado exitosamente la plantilla Yii2 Advanced. Si no, puedes consultar la documentación oficial de Yii Framework para la guía de instalación.
Pasos para Implementar una API RESTful en Yii2
El proceso de implementación consta de tres etapas principales: preparación del endpoint, configuración de la aplicación y pruebas. Analicemos cada etapa en detalle.
1. Crear la Estructura de Directorios de la API
El primer paso es crear un entorno de trabajo dedicado para la API. En la plantilla Yii2 Advanced, crearemos un nuevo directorio de aplicación llamado api.
- Copia todo el contenido del directorio
backenden la misma ubicación, luego renombra la copia aapi. - Abre el archivo
common/config/bootstrap.php. Añade un alias para el directorioapiagregando la siguiente línea:Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); - Dentro del directorio
environments, copia la carpetabackendtanto endevcomo enprod. Renombra cada copia aapi. - Edita el archivo
environments/index.php. Añade las rutas de configuración para el directorioapien las seccionessetWritableysetCookieValidationKey. - Utiliza la función «Buscar y Reemplazar» en tu editor de código. Reemplaza todas las ocurrencias de la cadena
backendconapien todos los archivos dentro de la carpetaapirecién creada.

2. Configurar el Controlador y las Reglas de URL
Una vez que la estructura esté lista, el siguiente paso es configurar el controlador que manejará las solicitudes de la API.
- Crear el Controlador de la API. Crea un nuevo archivo llamado
UserController.phpdentro del directorioapi/controllers. Complétalo con el siguiente código:
Este controlador hereda de<?php namespace api\controllers; use yii\rest\ActiveController; class UserController extends ActiveController { public $modelClass = 'common\models\User'; }ActiveController, que proporciona automáticamente endpoints RESTful completos (GET, POST, PUT, DELETE) para el modelo User. - Configurar el Administrador de URL. Abre el archivo
api/config/main.php. Añade o modifica los componentesrequestyurlManagerdentro del arraycomponents:
Esta configuración habilita el análisis de entrada JSON y define reglas de enrutamiento para el controlador User.'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ] ], 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'user'], ], ], ], - Configurar el Servidor Web (Opcional). Para servidores Apache, crea un archivo
.htaccessdentro de la carpetaapi/webcon el siguiente contenido:
Este archivo dirige todas las solicitudes al archivo principalRewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.phpindex.phpde Yii2.
3. Probar los Endpoints de la API
Una vez completada la configuración, puedes probar los endpoints de la API creados. Aquí hay algunos métodos de prueba comúnmente utilizados.
- Usando Postman. Descarga e instala Postman. Crea una nueva solicitud usando el método GET y la URL:
http://localhost/[nombre-de-tu-proyecto]/api/web/users. Si es exitoso, recibirás una respuesta JSON que contiene datos de usuario. - Usando cURL. Ejecuta el siguiente comando en una terminal o prompt de comandos:
curl -H "Accept: application/json" "http://localhost/[nombre-de-tu-proyecto]/api/web/users" - Acceso a través del Navegador. Abre la URL del endpoint en un navegador. Sin embargo, este método suele ser adecuado solo para pruebas simples de solicitudes GET.

Al completar todos los pasos anteriores, has construido exitosamente una API RESTful básica en Yii2. Para un desarrollo posterior, considera añadir mecanismos de autenticación (como JWT), autorización, limitación de velocidad y una buena documentación de la API. Consulta siempre la documentación oficial de Yii2 para asegurar que tu implementación siga las mejores prácticas actuales.


