Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouNathalie Bento Amorim Alterado mais de 8 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.