Desarrollo basado en API REST, la mejor manera de proyectar un backend


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+

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 literalmente saturados ante opciones nuevas, lenguajes, arquitecturas, librerías o frameworks. Y esto es un no parar, ya que las alternativas crecen semana tras semana. Ante ese panorama de continuo avance, nos encontramos con corrientes que, por sus ventajas y versatilidad, están adquiriendo cada vez un mayor protagonismo, como es el caso del desarrollo basado en API REST, algo en lo que profundizamos hoy.

Desarrollo backend 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. De esta manera, cuando se programaba en PHP, Python, .NET, etc. lo normal era que se entregase al navegador todo lo necesario 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 solo a través de Internet, sino también por medio de aplicaciones para móviles, etc. Si producimos HTML desde el lado del backend, 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 backend, 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 backend construyendo un API, nos aseguramos que se pueda consumir desde cualquier sistema o cliente. 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án 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.

Desarrollar fácilmente un API REST

En el ecosistema backend, la mayoría de los lenguajes nos permiten construir API REST de manera fácil, 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 desarrollo de API 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 backend con el mismo lenguaje con el que se construye el front-end, evitando la fatiga de pasar de un lenguaje a otro cuando se desarrollan ambas capas de un proyecto web. Además, dadas 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 backend 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.


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+