Xamarin Integrado con Web Api REST

La integración de un servicio web en una aplicación es un escenario común en los días presentes. La simplicidad de REST ha contribuido a que sea el método principal para acceder a los servicios web en aplicaciones móviles. En este blog se muestra cómo consumir un servicio web ApiREST desde una aplicación Xamarin.Forms.

REST (REpresentational State Transfer), es un tipo de arquitectura de desarrollo web que se apoya totalmente en el estándar HTTP. Nos permite crear servicios y aplicaciones que pueden ser usadas por cualquier dispositivo o cliente que entienda HTTP, por lo que es increíblemente más simple y convencional que otras alternativas que se han usado en los últimos diez años como SOAP y XML-RPC.

Podríamos considerar REST como un framework para construir aplicaciones web respetando HTTP. Por lo tanto REST es el tipo de arquitectura más natural y estándar para crear APIs para servicios orientados a Internet.

Como regla principal REST no guarda estado en el servidor, toda la información que se requiere para mostrar la información que se solicita debe estar en la consulta por parte del cliente. Al no guardar estado, REST nos da mucho juego, ya que podemos escalar mejor sin tener que preocuparnos de temas como el almacenamiento de variables de sesión e incluso, podemos jugar con distintas tecnologías para servir determinadas partes o recursos de una misma API.

HTTP (HyperText Transfer Protocol), es el protocolo de comunicación que permite la transferencia de información en la Web. Define una serie predefinida de métodos de petición (algunas veces referido como «verbos»). Cada método indica la acción que desea que se efectúe sobre el recurso identificado, los verbos más conocidos son:

GET         Recupera datos del servicio web.

POST        Crea un nuevo elemento de datos en el servicio web.

PUT         Actualiza un elemento de datos en el servicio web.

DELETE      Elimina un elemento de datos en el servicio web.

Una Web API integrada con REST es llamada normalmente RESTful API, y se define mediante:

– Una URI base (Dirección de la API).

– Métodos HTTP, como GET, POST, PUT, DELETE.

– Soporte para los datos, tales como JavaScript Object Notation (JSON).

Los servicios web RESTful suelen utilizar mensajes JSON para devolver los datos al cliente.  JSON es un formato de intercambio de datos basado en texto con consumo de ancho de banda reducido al enviar datos. La aplicación de ejemplo utiliza el NUGET NewtonSoft JSON.NET con el fin de serializar y deserializar mensajes.

Para enviar y recibir solicitudes a través de HTTP usaremos el NUGET FubarCoder.RestSharp.Portable el cual nos proporciona un RestClient con la funcionalidad para el envío de peticiones HTTP y recibir respuestas HTTP desde un URI de recurso identificado. Each request is sent as an asynchronous operation. Cada solicitud se envía como una operación asíncrona.

Para el manejo de la arquitectura MVVM usaremos el NUGET Autofac el cual se encargara de la creación y carga de las vistas y modelos de vista a través de Module y ContainerBuilder.

Para el manejo y navegación de ventanas usaremos Page e INavigation de Xamarin.Forms.

 

GitHub Codigo de la APIRest.

GitHub Codigo de la aplicacion Xamarin

 

Julio Cesar Ruperti Ortiz

Alumno del curso Microsoft MCSD.

Tajamar

Año académico 2015-2016

 

 

This Post Has 2 Comments

  1. Konrad4398421 Reply

    Hola tengo un problema porque no sé o no tengo bien claro como conectar mi app iOS y Android, tu podrías ayudarme por favor?Tengo una base de datos sencilla en MySQL y la quiero conectar.
    Saludos

  2. Sergio Hierro Reply

    Buenas, cual es tu duda exactamente?
    A groso modo, si ya tienes la base de datos creada, create una API que ataque a la BBDD, y desde el Proyecto de Xamarin en la parte «Portable» ataca a los servicios de tu API, y ya funcionaría igual para cualquier plataforma que tengas en el proyecto(iOS, Android, Windows Phone o UWP

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.