API-First como arquitectura para el diseño de servicios

En muchas ocasiones la API de una aplicación web se considera como una etapa posterior, lo que no es necesariamente un error según el contexto comercial y de los plazos determinados para un proyecto.

Sin embargo, si lo que se está pensando es un servicio como sistema complejo, en el que existen múltiples puntos de contacto con los usuarios (web, móviles, puestos de auto-atención, oficinas de atención al cliente, etc.) es conveniente y sensato pensar y diseñar la arquitectura de su plataforma informática centrándose en las APIs que permiten su operación, en lugar de pasar de implementación a implementación.

Una arquitectura API-First es:

Una arquitectura que trata al usuario de la API como el usuario primario de la aplicación. Esto significa que la API no es una vista alternativa en el paradigma MVC, sino que tiene la más alta prioridad. […] En “API First” la arquitectura impone una API completa, responsiva y bien documentada.

De este modo, la infraestructura tecnológica depende directamente del diseño del servicio en lugar de ser solamente una respuesta a su implementación esperada en un producto: las APIs se modelan como parte de los procesos de interacción del usuario con el sistema, ofreciendo una experiencia unificada a través de sus puntos de contacto.

Referencias:

unhosted: aplicaciones web bajo tu control

¿Quién dijo que para una aplicación web necesitas un servidor? Bueno, probablemente muchos lo pensaron (me incluyo), pero la verdad es que actualmente es posible desarrollar aplicaciones, a pesar de vivir en tu navegador, no necesitan conectarse a ningún servidor externo para funcionar.

unhosted plantea esta alternativa como una posibilidad real para aplicaciones que funcionan en cualquier dispositivo (puesto que son web, ya que sólo requieren de un navegador) y que además no dependen de ningún servicio externo para seguir funcionando.

La idea es posible gracias a la incorporación de varias tecnologías como parte del funcionamiento normal de un navegador moderno, asociadas a distintos aspectos de HTML5 como LocalStorage , App Cache e Indexed DB, sin las cuales una aplicación no podría funcionar correctamente sin necesidad de un servidor.

En una aplicación unhosted, el cliente recibe todo el código fuente que hacen posible el funcionamiento de la aplicación, junto con los recursos tales como estilos e imágenes. AppCache da la posibilidad de que los archivos de la aplicación no sean eliminados del navegador, mientras que LocalStorage e IndexedDB permiten guardar los datos generados por el usuario en la forma de bases de datos locales que viven en el navegador.

Por supuesto, una de las grandes ventajas de una aplicación web es la posibilidad de tener tu información respaldada y supuestamente segura en un servidor externo, pero esta posibilidad no escapa al diseño de una aplicación unhosted, ya que contempla también la posibilidad de respaldar y restaurar tus datos en un servicio de almacenamiento externo, ya sea bajo tu control o en el proveedor de tu elección.

La idea detrás de unhosted no es solamente tener mejores aplicaciones, funcionando de mejor modo, sino también evitar la dependencia de proveedores externos que pueden comprometer tu privacidad; además de desarrollar la idea y las herramientas técnicas para su implementación, unhosted apuesta por una web libre, abierta y descentralizada.