Desarrollo basado en API REST, la mejor manera de proyectar un back-end

El desarrollo de aplicaciones no ha parado de avanzar y de presentar novedades prácticamente desde que nació y lo hace a una velocidad de vértigo. Los desarrolladores están saturados literalmente con opciones nuevas, lenguajes, arquitecturas, librerías o frameworks. Y las alternativas no paran de crecer semana tras semana.

Ante ese panorama, nos encontramos con corrientes que, por sus ventajas y versatilidad, están adquiriendo protagonismo en el desarrollo, como es el caso de las API REST. Cuando hablamos de corrientes en el lado del back-end que están estableciéndose como una fuerte alternativa, todos los desarrolladores estamos contemplando  el desarrollo basado en REST.

Desarrollo back-end tradicional

El desarrollo del lado del servidor tradicional se basaba en construir sistemas que devolvieran al cliente código HTML, capaz de ser interpretado directamente por el navegador. Así pues, cuando se programa en PHP, Python, .NET, etc. lo normal era que se entregase al navegador todo lo que él necesita para “pintar” la página a su usuario.

El punto débil de esta alternativa se basa principalmente en:

  • Hoy no se consume el servicio web sólo a través de Internet, sino también por medio de aplicaciones para móviles, etc. Si producimos HTML desde el lado del back-end es muy probable que tengamos que programar varias veces ese back-end para cada sistema al que lo queramos portar.
  • Ante la cantidad de alternativas que aparecen con tanta velocidad, la parte que menos cambia es la del back-end, por lo que es interesante que podamos desarrollar esa capa de manera que se pueda adaptar a cualquier tipo de librería del lado del frontal.

Desarrollo basado en API REST

En cambio, cuando desarrollamos un servicio back-end construyendo un API, nos aseguramos que, desde cualquier sistema o cliente, se pueda consumir. El API no devuelve más que datos, que están desacoplados a cualquier modo de visualización. Si estamos implementando una web, consumiremos el API desde cualquiera de los frameworks o librerías Javascript populares, como AngularJS, Polymer o ReactJS. También se podrá consumir los servicios del API desde aplicaciones desarrolladas en Java para Android o Swift/Objective C para iOS, por ejemplo.

Dentro de las alternativas de construcción de un API, REST es una que simplifica mucho el funcionamiento, dado que se elimina todo lo relacionado al estado de la aplicación. Aunque REST no almacena ninguna información de la sesión de los usuarios, esto es algo que se resuelve mediante un token que el cliente debe enviar al servidor en cada solicitud que se realice, como ya vimos en el artículo Un Back-end único para dominarlos a todos

Desarrollar fácilmente un API REST

En el ecosistema back-end la mayoría de los lenguajes nos permiten fácilmente construir APIs REST mediante diversas librerías o frameworks.

  • PHP. Existen frameworks potentes como Symfony o Laravel capaces de acelerar mucho el desarrollo de un API. Además hay muchos microframeworks que tienen como principal objetivo el desarrolo de APIs REST, desechando todo lo pesado y no tan útil de un framework convencional, como Lumen o Slim.
  • NodeJS. El desarrollo con NodeJS de un API REST es especialmente indicado, dado que nos permite construir el back-end con el mismo lenguaje con el que se construye el front-end, evitando la fatiga de pasar de un lenguaje a otro cuando se desarrolla ambas capas de un proyecto web. Además, dado las características de esta plataforma, también se hace muy adecuada para el desarrollo RESTful dado que Node, al no ser bloqueante, puede atender a más usuarios de manera concurrente. En NodeJS hay frameworks potentes para el desarrollo de APIs y aplicaciones en general, como Express o algunos enfocados al desarrollo de APIs de manera más particular como SailsJS.
  • .NET. En esta tecnología también existen diversas alternativas sencillas y rápidas para implementar un API. El propio Microsoft nos ofrece ASP.NET Web API, un complemento esencial para construir servicios HTTP especialmente pensados para REST.

NoSQL

En el lado del back-end y cuando hablamos de innovación no podemos dejar de lado las bases de datos. En concreto,  hay un tipo de bases de datos que marcan la diferencia con respecto a las opciones tradicionales. Son las bases de datos no relacionales, comúnmente conocidas como NoSQL.

Este tipo de bases de datos combinan muy bien con los modelos de desarrollo basados en REST y con movimientos emergentes como el IoT (Internet of Things), ya que nos permiten grandes volúmenes de información a gran velocidad de procesamiento y concurrencia. Esto se aborda a costa de sacrificar algunas de las ventajas de acceso a la información de las relacionales, por lo que hay que saber que en el mundo del desarrollo no hay balas de plata y por tanto no siempre son la solución para todos los problemas. Seguiremos hablando de ello en próximos artículos.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

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