API en PHP. Slim vs Laravel vs Lumen

Comparte:

Si eres un programador de servicios web seguro que te has topado con el reto de programar APIs para comunicar tu aplicación con terceras partes u otros servicios propios. Aquí te presento unos conocimientos básicos que debes tener y posibles alternativas para afrontar el desarrollo de tu API.

Lejos que querer dar una definición técnica sobre qué es una API (para eso ya está Wikipedia), demos por sentado que el concepto general está claro y pasemos a la parte práctica: necesitamos construir una API, bien, ¿Qué lenguaje de programación utilizo? ¿Protocolo de comunicación? ¿Framework? ¿Microservicios?

 

Lenguaje de programación

En este punto cada experto tiene sus preferencias y argumentos, pero la respuesta que te dará cualquier desarrollador experimentado es “utiliza el lenguaje en el que tengas más experiencia y te sientas más seguro”.

Este es un punto muy importante de verás, no intentes afrontar ningún desarrollo importante en un lenguaje que no dominas por muy bueno que te digan que es. El resultado puede ser catastrófico.

En mi caso, para el desarrollo de APIs me siento bastante seguro y con experiencia en PHP, así que lo enfocaré desde este punto de partida.

 

Protocolo de comunicación

Cuando hablamos de APIs normalmente estamos en un escenario de comunicación bajo “http”. Esto no quiere decir que nos limitemos a sistemas alojados en internet, también podemos utilizar este protocolo en arquitecturas locales, o un “mix”: parte on-prem (aplicación local) contra un servicio en la nube.

También es importante adaptarse a un estándar de comunicación. El más habitual en el escenario que estamos construyendo aquí sería RESTful. Este término hace referencia a un modelo de arquitectura utilizado mundialmente, que nos asegurará hacer compatible nuestra API con cualquier otra aplicación que lo entienda, independientemente el lenguaje de programación.

Con estos dos puntos ya nos aseguramos de ofrecer una API bajo una arquitectura y estándares sólidos, capaz de comunicarse con multitud de aplicaciones sin importar el lenguaje de programación en que estén diseñadas.

 

Microservicios

Antes de continuar me gustaría aclarar este punto: Una solución API no es un Microservicio. Sé que para algunos resulta obvio, pero duele ver como algunos se apropian del término “microservicio” solo porque es la palabra de moda y porque vende más, cuando en realidad lo que desarrollan son aplicaciones monolíticas que cuentan con una serie de APIs.

En futuros Posts profundizaré sobre este tema

 

Framework

No satisfechos con hacernos decidir sobre el lenguaje de programación a utilizar y el modelo de arquitectura, ahora nos ofrecen multitud de Frameworks de PHP para realizar el desarrollo… ¡malditos!

A todo programador, por mucha experiencia que tenga, se le acaba pasando por la cabeza afrontar el diseño de un API desde cero, a mano, sin ayuda de ningún tipo de Framwork. ¡Afirmo categóricamente que esto es uno de los peores errores que puedes cometer!

Un Framework, además de aportarte facilidades en la programación, en el caso concreto de las APIs será tu gran salvavidas en cuando a performance y seguridad se refiere, dos grandes quebraderos de cabezas para todo el que se aventura a desarrollar este tipo de diseños sin ayuda de un buen Framework.

Ahora bien, hay muchos y diversos… ¿Cuál utilizo? Más bien la pregunta que debes hacerte es ¿Cuál se adapta más al proyecto que estoy desarrollando?

Bajo mi experiencia te propongo tres buenas alternativas enfocadas a tres escenarios distintos: Slim, Laravel y Lumen.

 

Slim

Página oficial

Slim se define a sí mismo como un “micro framework”, esto es debido a su liviano peso, facilidad de instalación y aún más sencilla utilización.

Está pensado especialmente para el desarrollo de APIs, lo que quiere decir que su prioridad es ser rápido en ejecución y efectivo en seguridad de peticiones http.

Su instalación y puesta en marcha es realmente sencilla, únicamente debes descargarte una carpeta de archivos que puedes ubicar en el directorio de tu aplicación donde desees, después haces un include a uno de esos archivos llamado “autoload.php”, y listo, ya puedes comenzar a hacer uso de las funciones y enrutamientos para gestionar tu API.

Otra forma de instalación más correcta es utilizando “Composer”, así te aseguras de disponer de la última versión del framework perfectamente organizada en tu proyecto.

 

Laravel

Página oficial

Laravel, el framework más querido de los desarrolladores en PHP, que sin duda ha devuelto muchas esperanzas a este lenguaje de programación.

Como tal, Laravel es una solución total y completa a cualquier desarrollo en PHP, desde backends, fronts, APIs, etc.

Utilizando Laravel nuestras capacidades se vuelven ilimitadas, como no, una parte de este Framework se centra en dar solución a desarrollos de APIs contando con herramientas de enrutamiento, middleware para dar seguridad, handler para tratar excepciones, logs

Su instalación y configuración es algo más compleja que con Slim, pero una vez más, si tienes conocimientos básicos sobre montaje de proyectos con composer la situación se simplifica bastante.

Lo que hay que tener en cuenta con este Framework es que no es una solución específica para APIs, si no mucho más, es una solución a cualquier tipo de proyecto a afrontar con PHP. Incluso nos permitirá desarrollar una aplicación normal en PHP y una parte dentro de la misma que de servicio como API.

Lo que tienes que valorar con este Framework es ¿realmente necesito tanto para mi API? ¿Me merece la pena instalar todo este Framework con las soluciones de interface gráfica que tiene de serie?

 

Lumen

Página oficial

La respuesta a las cuestiones que levantábamos justo antes. Lumen, de los mismos desarrolladores de Laravel, es justo eso, un Laravel en miniatura.

Imagina que quitas todas las herramientas que Laravel incluye para dar solución al front, como Vue.js, Blade, CSS, etc. y únicamente te quedas con las partes que afectan a una API. Pues esto es justamente lo que han hecho la gente de Laravel.

También eliminando todo este “contenido extra” para nuestra API, lógicamente conseguimos menos peso, menos procesos y por lo tanto más agilidad y rapidez de respuesta para nuestras peticiones http.

Por todo lo demás, Lumen sigue la misma instalación, estructura y arquitectura que Laravel, así que si tienes experiencia con este Framework no te va a costar ningún esfuerzo funcionar con Lumen.

 

Conclusiones

Slim: Si no tienes experiencia trabajando con Frameworks en PHP, esta es la solución ideal para desarrollar tu API. Que no te asuste el término “Framework”, apenas te llevará un par de horas entender cómo construir tu código bajo Slim y pronto estarás obteniendo resultados con un performance y seguridad óptimos.

Laravel: Utiliza este Framework en el caso que tu proyecto ya esté (o vaya estar) desarrollado en Laravel y lo que quieres es dotarlo de funcionalidad API. Si se trata de un proyecto API de cero y no prevés que vaya a evolucionar para disponer de interface gráfica, no te aconsejo tomar este camino.

Lumen: Si ya tienes experiencia en Laravel, y como en el caso anterior no prevés que tu proyecto necesite ninguna interface gráfica, este es tu Framework.

Como puedes ver, cada Framework de estos tres tiene su escenario ideal, y los tres son excelentes herramientas, así que no correrás riesgos elijas cual elijas.

Una vez más te insto a que elimines la idea de afrontar un desarrollo “a mano” que te acarreará disgustos innecesarios.

 

 


Comparte:

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

7 ideas sobre “API en PHP. Slim vs Laravel vs Lumen”