Programar API's con PHP se ha vuelto más sencillo con los años. Existen variedades de Frameworks que van desde lo imposible hasta lo más sencillo. Des estos últimos elegí a Slim Framwork el cual se denomina un microframework para desarrollo rápido de API's y aplicaciones. Llevo años usándolo y no le pide nada a frameworks más complejos.
Para este ejercicio usaremos el directorio "ejemplos" que hemos usado anteriormente para otros tutoriales.
Como estamos en un ambiente Linux, todos los comandos se van a referir a ese sistema operativo, además de configuraciones en nGinx.
Lo primero que debemos hacer es colocarnos en la carpeta en la cual estaremos trabajando y ahí instalar Slim mediante Composer usando el siguiente comando:
$ composer require slim/slim
Composer bajará e instalará todas las dependencias necesarias de Slim como se ve en la siguiente imagen:
El siguiente paso necesario es instalar una implementación de PSR/7 obligatoria para Slim:
PSR/7 es una estándar de peticiones bajo el protocolo HTTP
sudo composer require httpsoft/http-message
Y después:
sudo composer require httpsoft/http-server-request
Finalmente debemos indicarle a nGinx que el directorio "ejemplos" debe procesar las peticiones que reciba index.php como un base path:
location /ejemplos {
try_files $uri $uri/ /ejemplos/index.php?$query_string;
}
Reiniciamos nGinx para que tome los cambios mediante:
systemctl restart nginx
Ahora sí, creamos un archivo pho llamado "index.php" con el siguiente código:
<?php
#phpinfo();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
use Slim\Factory\AppFactory;
require __DIR__ . '/vendor/autoload.php';
$app = AppFactory::create();
// Establece el base path si la aplicación corre en un subdirectorio
$app->setBasePath('/ejemplos');
// Tus rutas aquí
$app->get('/', function ($request, $response) {
$response->getBody()->write("Hola desde el subdirectorio ejemplos");
return $response;
});
$app->run();
?>
Lo cual dará como resultado lo siguiente:
Y así es como se instala Slim Framework y se crea una respuesta de pruebas.
Comentarios