Resumen - Arquitectura REST y servicios móviles
Resumen de la charla del pasado 30 de enero de 2016 sobre arquitectura REST y servicios web con Xamarin. ¡Gracias a todos por acompañarnos!
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 adicionales:
- 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
Links del código y recursos adicionales:
- Código fuente disponible en mi cuenta de GitHub (stvansolano): /MobileWorkshop/web-services
- Generar DTOs a partir de JSON: http://json2csharp.com/
- Más sobre Firebase y su REST API: https://www.firebase.com/ Firebase REST API
- Estructura JSON: Xamarin-Workshop.firebase.io.com
- Curso de REST de Pluralsight recomendado y disponible de forma gratuita para la Comunidad: Building and Securing RESTful APIs
- Lecturas adicionales de Xamarin University: OAuth and OpenID Connect