Arquitectura REST, servicios web y aplicaciones móviles
Sobre REST y servicios web
REST es el acrónimo para Representational State Transfer, el cual es un estilo de arquitectura de software altamente utilizado hoy en día para crear aplicaciones distribuidas y modeladas alrededor de la especificación HTTP.
REST sigue la anatomía de la web para acceder recursos disponibles en internet por medio de representaciones (aka HTML, JSON, XML o algún otro) por medio de acciones o verbos HTTP. Esto nos permite crear servicios que resultan fáciles de entender, representar y construir aplicaciones capaces de interactuar el servicio web (o API, Application Programming Interface) en el cual podemos encapsular ya sean datos, lógica de negocio y otros recursos.
Sobre la Solución:
En esta ocasión desarrollé una pequeña aplicación móvil capaz de conectarse via REST a una base de datos NoSQL hospedado en Firebase (Google) y realizar las operaciones CRUD básicas (Create, Read, Update y Delete).
En resumen el proyecto contiene:
- Una aplicación portable de forma nativa a iOS, Android y UWP con el framework Xamarin.Forms (~90% del código C#/.NET compartido entre las plataformas)
- Llamadas REST hacia Firebase (Base de Datos NoSQL hospedada en la nube + API REST)
- Algunos elementos de Material Design específicos para la aplicación en Android
Plugins recomendados:
- Json.Net : Serialización/deserialization de objetos con JSON rápida y sencilla.
- Xam.Plugin.Connectivity (Network Connectivity Plugin): Plugin de Xamarin para determinar el estado de la conexión a internet en todo momento.
- ModernHttpClient : Plugin optimizado para conexiones HTTP en iOS, Android y UWP
- Microsoft.Net.Http : Librería portable realizar llamadas HTTP de manera centralizada y re-utilizable en iOS, Android y UWP
- Android Support Library : Complemento adicional para soporte de elementos de Material Design