Probando API Platform

Diego Ramirez
3 min readApr 15, 2018

--

Es un Domingo fresco en Chaco y aprovechando que la familia realiza sus actividades, llámese tareas escolares, repaso de conceptos de un nuevo trabajo yo me propuse aprender un poco sobre API Platform.

Desde hace un tiempo en un proyecto en el cual trabajo vemos, la necesidad de dividir la lógica relacionada a la capa de presentación con la lógica de negocio y llevar la arquitectura a un esquema de microservicios.

API Platform viene sonando hace un tiempo en mi timeline de twitter (debido a que sigo a muchos referentes del framework symfony) así que decidí invertir un par de horas para seguir el ejemplo que propone …

Instalando Docker

API Platform viene con su contenedor docker para tener todo bien ordenado y segmentado. Lamentablemente tengo una versión recién instalada de ubuntu (17.10) y pierdo un par de minutos instalando docker.

Primer problema mi docker-compose.yml falló después de ejecutar el comando

docker-compose up -d # Running in detached mode

Luego de un buen rato ejecutando todo el setup llegamos a la prueba visual y podemos observar. Algo que me llamó la atención es el uso de PostgreSQL y no MySql/MariaDB

Probando la API

Al probar la API todo funcionaba a la perfección, al tener un contacto con swagger previo en otros proyectos y conocer el dolor de configurar las anotaciones de SwaggerPhp esto hizo caer una lágrima en mi mejilla XD .

Creando el la base y el esquema Books y Reviews

El tutorial continua y podremos crear dos entidades en nuestra API, Book y Review, en este caso todo es muy symfony standard salvo el agregado de la anotación ApiResource

use ApiPlatform\Core\Annotation\ApiResource;

La cual hace toda la magia para exponer nuestras entidades en la API

Validando

El paso siguiente es agregar los Asserts también bastante symfony standard pero lo que impresiona es la integración con la API.

Graphql

Como opcional podemos instalar GraphQL, sinceramente todavía no lo usé en ningún proyecto, pero es muy flexible y potente como alternativa a REST.

Les dejo un link para que profundicen sobre GraphQL

El Admin

El admin está realmente muy copado con Material Design consumiendo los servicios REST y utilizando React/Redux, además de ser una PWA. Otra cosa interesante es que el código no se genera, sino que es 100% dinámico.

Conclusión

A priori parece como si un grupo de elitistas dijeron vamos a usar las herramientas más mainstream del desarrollo web y lo vamos a poner de una forma fácil y extensible. Como todo primer tutorial introductorio, cuando probamos algo la mayoría de las veces es copy paste de comandos y todo funciona a la perfección hasta que tenemos algo que adaptar o modificar.

ToDo List

--

--