Consumindo RESTFull web services com RestSharpWrapper

Neste tutorial nA?s falaremos um pouco sobre a teoria dos Web Services RESTFull e como consumir estes serviAi??os no Windows Phone 8, usando o componenteAi??RestSharpWrapper.

 

O que sA?oAi??Web ServicesAi??RESTFull

Representational State Transfer (REST) Ai?? um estilo arquitetural que especifica constraints, como uma interface uniforme, que quando aplicada a um Web Service, influenciaAi??propriedades desejadas, como performance, escalabilidade e modificabilidade, o que habilita os serviAi??os a trabalhar melhor na Web.No estilo arquitetural REST dados e funcionalidade sA?o considerados recursos e sA?o acessados utilizando Uniform Resource Identifiers (URIs), tipicamente links na Web. Os recursos sA?o ativados usando um conjunto de operaAi??Ai??es simples e bem definidas. Ai??OAi??estilo arquitetural REST restringe uma arquitetura para cliente/servidor e Ai?? desenhado para utilizar comunicaAi??Ai??es stateless, tipicamente HTTP. NoAi??estilo arquitetural REST, clientes e servidores trocam representaAi??Ai??es de recursos utilizando um protocolo de interface padronizado.

Recursos sA?o manupulados utilizando um conjunto fixo(ou quase fixo) de quatro operaAi??Ai??es create, read, update eAi??delete: PUT, GET, POST, Ai??e DELETE. PUT Ai??cria um novo recurso, o qual pode ser deletado por DELETE. GET captura o estado atual de um recurso em alguma representaAi??A?o. POST transfere um recurso a um novo estado.

As classesAi??RestSharpWrapper eAi??HttpRestRequest

As Classes RestSharpWrapper e HttpRestRequest sA?o especializaAi??Ai??es das classes RestSharp e RestRequest que pertencem Ai?? library open source RestSharp. A motivaAi??A?o para escrever esses wrappers foi reduzir a quantidade de cA?digo irrelevante necessA?rio para configurar as chamadas para asAi??RESTFull apis. Acompanhe um overview da solution:

Cheap dehumidifier cannabis RestSharpWrapperS

A maior parte do trabalho Ai?? feito na classeAi??HttpRestRequest, Que Ai?? responsA?vel por guardar todos os dados necessA?rios para fazer requests de algum recurso de umaAi??RESTFull api. O mAi??todo PreProcessResponse implementa um tratamento de erros bA?sico que pode facilmente ser sobrescrito por uma aplicaAi??A?o cliente para atender Ai?? condiAi??Ai??es especAi??ficas. Se oAi??request for bem sucedido, oAi??PreProcessResponse encaminha a chamada ao mAi??todo ProcessSuccessRequest, de outra forma Ai?? encaminhado paraAi??ProcessFailedRequest. A aplicaAi??A?o cliente Ai?? responsA?vel por tomar a aAi??A?o apropriada com a resposta retornada.

Quando o recurso Ai?? retornado, ele possui um formato especAi??fico.Ai??Os mais comuns atualmente sA?oAi??os formatosAi??JSON eAi??XML, oAi??DefaultJsonHttpRequest Ai?? uma especializaAi??A?o deAi??HttpRestRequest para tratamento de repostas na representaAi??A?oAi??JSON.

How to

Primeiro, assegure-se que vocA? possui o INdT.Framework Ai??referenciado no seu projeto. No exemplo abaixo, nos usaremos uma api exemplo hospedada nesse blog.

User eAi??UserList Models

using System;
using Newtonsoft.Json;

namespace RestServicesSample.Model
{
    public class User
    {
        [JsonProperty("id")]
        public String Id { get; set; }

        [JsonProperty("name")]
        public String Name { get; set; }

        [JsonProperty("surname")]
        public String Surname { get; set; }

        [JsonProperty("email")]
        public String Email { get; set; }

        [JsonProperty("phone")]
        public String Phone { get; set; }
    }
}

 


public class UserList
{
    public List<User> user { get; set; }
}

Pegar informaAi??A?o de um usuA?rio especAi??fico

public void GetUser(int userId, Action<User> success, Action<String> fail)
{
    String resource = String.Format(Api.UserUri, userId);
    DefaultJsonHttpRequest<User, string> request =
        new DefaultJsonHttpRequest<User, string>(resource, Method.GET, success, fail);

    restClient.ExecuteAsync(request);
}

Pegar a lista de todos os usuA?rios


public void GetUsers(Action<UserList> success, Action<String> fail)
{
    DefaultJsonHttpRequest<UserList, string> request =
        new DefaultJsonHttpRequest<UserList, string>("/user", Method.GET, success, fail);
    restClient.ExecuteAsync(request);
}

O cA?digo fonte para esse e outros A?timos exemplos estA?o disponAi??veis para download noAi??CodePlex

Leave a comment

  • 0.0