Ventajas de desarrollo

1. separación cliente/servidor

Al ser sistemas independientes (solo se comunican con un lenguaje de intercambio como JSON) puedes desarrollarlos proyectos autónomos, equipos autónomos. Al cliente le da igual cómo está hecha la API y al servidor le da igual qué vas a hacer con los datos que te ha proporcionado.

Si necesitas evolucionar/refactorizar uno de los dos, back o front, se puede hacer de manera separada, siempre que se mantenga la interfaz del API.

Una ventaja importantísima es la posibilidad de hacer varios front con un único backend con solo una API (front no tiene xq ser solo web, puede ser un app para Android otro para un App iOS, etc.)

Nota: Ojo con esto. Sí son independientes, PERO deben tener mucha comunicación ambos equipos para saber qué hacer y cómo hacerlo; desgraciadamente esta falta de comunicación es un error clásico y muy común que lleva siempre a pérdidas de tiempo y tener que volver a repetir el trabajo.

2. Independencia de tecnologías / lenguajes

Puedes desarrollar en cualquier tipo de tecnología o lenguaje con la que te sientas a gusto o con la que puedas acortar tus tiempos de desarrollo, o encaje con la filosofía o necesidades de tu proyecto. Es indiferente que en el futuro cambies totalmente las tecnologías con las que está implementado tu API REST, siempre y cuando respetes "el contrato", osea, que sigas teniendo las mismas operaciones en el API y hagan las mismas cosas que se supone que deben hacer.

Nota: Hay cientos de lenguajes donde podremos trabajar con JSON: JavaScript, PHP, Python, Swift, Java....

3. Fiabilidad, escalabilidad, flexibilidad

Al final solo te tienes que preocupar que el nexo cliente / servidor esté correcto. Puedes hacer cambios en tu servidor, lenguajes, bases de datos, etc. y mientras devuelvas los datos que toca todo irá correctamente.

Escalabilidad porque puedes crecer todo lo que necesites en cada momento. Tu API puede responder a otros tipos de operaciones o puede versionarse tanto como desees. También tu programación del lado del cliente puede crecer todo lo necesario con el tiempo, incluso como decíamos, crear otros frontales, no solo web, también de Apps para cualquier dispositivo.

A la hora de ejecutar tu aplicación también tienes una flexibilidad mucho mayor. Las páginas del front las puedes enviar desde unos servidores y las API pueden estar alojadas en servidores independientes, tantos como necesites. Por las características de REST (principalmente no guardar estado) es indiferente qué servidor atienda cada solicitud, pues es el propio cliente el que tiene que mandar el estado al servidor, así que el balanceo de carga es mucho más simple que en aplicaciones tradicionales donde el front está mezclado con el back. También tienes la aproximación de las "micro APIs", en las que puedes dividir los procesos en diferentes servidores que atiendan a diferentes tipos de operaciones del API.

4. Experiencia de usuario

Aunque eso depende más de cómo está hecha la parte del cliente, teóricamente el desarrollo de sitios web basados en un API puede dar mejor desempeño que uno tradicional. Cuando haces una solicitud al servidor lo que tienes como respuesta son datos planos, que requieren tiempos de transferencia menores que si esos mismos datos los recibieras mezclados con el HTML/CSS de la presentación. En este tipo de aplicaciones web no necesitas recargar la página, aunque esto no es una ventaja específica del desarrollo basado en REST, sino del uso de Ajax en general, con el que podemos conseguir aplicaciones web que se asemejan más a aplicaciones de escritorio

5. REST requiere menos recursos del servidor

Esto no es necesariamente cierto aunque en muchos casos sí se pueda deducir. Hay muchas opiniones al rededor de REST. Nosotros basamos esa afirmación en estos motivos:

  • No mantener el estado, no requiere memoria, se pueden atender más peticiones
  • No requiere escribir el HTML, por lo tanto tienes menos procesamiento en el servidor

results matching ""

    No results matching ""