A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

OVERVIEW DO ASP.NET WEB API Israel Aece MVC SUMMIT 2012.

Apresentações semelhantes


Apresentação em tema: "OVERVIEW DO ASP.NET WEB API Israel Aece MVC SUMMIT 2012."— Transcrição da apresentação:

1 OVERVIEW DO ASP.NET WEB API Israel Aece http://www.israelaece.com ia@israelaece.com MVC SUMMIT 2012

2 Situação Atual Estrutura da API Infraestrutura Interceptadores Formatos Injeção de Dependências Testes Processamento Assíncrono Consumo Outros AGENDA ASP.NET Web API - MVC Summit 2012

3 WCF – Parte do.NET Framework – Construção de Serviços SOAP – Suporte para REST WCF Web API – Tecnologia para construção de APIs REST – Descontinuada – Incorporada pelo ASP.NET ASP.NET Web API – Parte do ASP.NET MVC 4 – Em versão Beta (com Go-Live) – Desvinculada do.NET Framework – Plataforma Web da Microsoft – Via NuGet SITUAÇÃO ATUAL ASP.NET Web API - MVC Summit 2012

4 Semelhante a construção de controllers do MVC ApiController – Classe base para qualquer API – Sufixada com “Controller” Actions – Métodos que tratam as requisições – Parâmetros simples ou complexos – HttpRequestMessage/ – HttpResponseMessage/ – HttpPost, HttpGet, HttpPut e HttpDelete ESTRUTURA DA API ASP.NET Web API - MVC Summit 2012 public class ExemploController : ApiController { public string Get(string value) { } public HttpResponseMessage Get(HttpRequestMessage request) { } public HttpResponseMessage Post(Pedido request) { } [HttpGet] public IEnumerable RecuperarClientes() { } } public class ExemploController : ApiController { public string Get(string value) { } public HttpResponseMessage Get(HttpRequestMessage request) { } public HttpResponseMessage Post(Pedido request) { } [HttpGet] public IEnumerable RecuperarClientes() { } }

5 Dividido em três camadas – Hosting WebHost Self-Host – Message Handler Pipeline – Controller Handling – + Info: http://tinyurl.com/webapi-pahttp://tinyurl.com/webapi-pa Configuração – Baseado em rotas – MapHttpRoute INFRAESTRUTURA ASP.NET Web API - MVC Summit 2012 Controller GetXXX PostXXX ApiController HttpServer WebHost SelfHost Controller Dispatcher Message Handler using System.Web.Http; routes.MapHttpRoute( name: "ActionApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); using System.Web.Http; routes.MapHttpRoute( name: "ActionApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } );

6 Message Handlers – Rodam antes do model binding Similar aos channels do WCF – Lidam com as classes HttpRequestMessage e HttpResponseMessage – A mesma instância é utilizada por todas as operações da API – DelegatingHandler Russian-dolls Action Filters – Rodam depois do model binding Similar aos inspectors do WCF – Próximo ao que já existe no MVC – Aplicado em várias partes Ações específicas ou controllers inteiros INTERCEPTADORES ASP.NET Web API - MVC Summit 2012 Cliente MH1 MH2 HCH Controller HCD MH4 HS Internet HCH: HttpClientHandler HS: HttpServer HCD: HttpControllerDispatcher MH3

7 Identifica o formato do corpo da mensagem – Tanto a requisição quanto a resposta Alguns Formatos – application/json – application/xml – application/x-www-form-urlencoded – text/html – image/png Headers – Content-Type Identifica o formato do corpo da mensagem – Accept Indica em que formato o cliente deseja a resposta Media Type Mappings Estensível via MediaTypeFormatter FORMATOS ASP.NET Web API - MVC Summit 2012

8 Próximo ao que já existe no MVC Utilizado pela infraestrutura Pode ser utilizado para extrair recursos próprios Também é estensível – Permite plugar um container de DI IDependencyResolver INJEÇÃO DE DEPENDÊNCIAS ASP.NET Web API - MVC Summit 2012

9 Sem objetos estáticos – WebOperationContext.Current WCFMock Parâmetros podem ser fornecidos através do construtor – Em runtime, podemos recorrer ao DependencyResolver Manipulação direta via HttpRequestMessage e HttpResponseMessage – Estão “desconectadas” da infraestrutura – In-memory hosting para facilitar os testes Sem qualquer uso da rede TESTES ASP.NET Web API - MVC Summit 2012

10 Faz uso dos recursos incorporados na linguagem A implementação é mais simples – IAsyncResults, Callbacks, Begin/End, etc. No servidor – Melhor utilização dos recursos, escalabilidade No cliente – Permite uma aplicação mais interativa PROCESSAMENTO ASSÍNCRONO ASP.NET Web API - MVC Summit 2012 public class NoticiasRegionaisController : ApiController { public async Task > Get(string cidade) { using (var client = new HttpClient()) return await (await client.GetAsync(“http://outroServidor/noticias/” + cidade)).Content.ReadAsync >(); } } public class NoticiasRegionaisController : ApiController { public async Task > Get(string cidade) { using (var client = new HttpClient()) return await (await client.GetAsync(“http://outroServidor/noticias/” + cidade)).Content.ReadAsync >(); } }

11 Por qualquer tecnologia – Sem WSDL – Acesso ao(s) recurso(s) – Sem a necessidade de ferramental Em.NET (System.Net) – HttpWebRequest/HttpWebResponse – WebClient – HttpClient Flexibilidade Com vários facilitadores para o consumo de APIs REST. CONSUMO ASP.NET Web API - MVC Summit 2012

12 Consultas – IQueryable Autenticação – OAuth – Basic – JsonLogin OUTROS ASP.NET Web API - MVC Summit 2012

13 ASP.NET Web API – Site Oficial – http://www.asp.net/web-api http://www.asp.net/web-api Pedro Félix – http://pfelix.wordpress.com/ http://pfelix.wordpress.com/ Carlos Figueira – http://blogs.msdn.com/b/carlosfigueira/ http://blogs.msdn.com/b/carlosfigueira/ Pablo Cibraro – http://weblogs.asp.net/cibrax/ http://weblogs.asp.net/cibrax/ Pedro Reys – http://pedroreys.com/ http://pedroreys.com/ Elemar Junior – http://elemarjr.net/tag/rest/ http://elemarjr.net/tag/rest/ Meu Blog – http://www.israelaece.com/?tag=/rest http://www.israelaece.com/?tag=/rest REFERÊNCIAS ASP.NET Web API - MVC Summit 2012

14 OVERVIEW DO ASP.NET WEB API Israel Aece http://www.israelaece.com ia@israelaece.com MVC SUMMIT 2012


Carregar ppt "OVERVIEW DO ASP.NET WEB API Israel Aece MVC SUMMIT 2012."

Apresentações semelhantes


Anúncios Google