1 / 14

Overview do ASP.NET Web API

Overview do ASP.NET Web API. MVC Summit 2012. Israel Aece http://www.israelaece.com ia@israelaece.com. Situação Atual Estrutura da API Infraestrutura Interceptadores Formatos Injeção de Dependências Testes Processamento Assíncrono Consumo Outros. Agenda. WCF

anika
Download Presentation

Overview do ASP.NET Web API

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Overview doASP.NET Web API MVC Summit 2012 Israel Aece http://www.israelaece.com ia@israelaece.com

  2. SituaçãoAtual • Estrutura da API • Infraestrutura • Interceptadores • Formatos • Injeção de Dependências • Testes • ProcessamentoAssíncrono • Consumo • Outros Agenda ASP.NET Web API - MVC Summit 2012

  3. WCF • Parte do .NET Framework • Construção de Serviços SOAP • Suportepara REST • WCF Web API • Tecnologiaparaconstrução de APIs REST • Descontinuada • Incorporadapelo ASP.NET • ASP.NET Web API • Parte do ASP.NET MVC 4 • Emversão Beta (com Go-Live) • Desvinculada do .NET Framework • Plataforma Web da Microsoft • Via NuGet Situaçãoatual ASP.NET Web API - MVC Summit 2012

  4. Semelhante a construção de controllers do MVC • ApiController • Classe base paraqualquer API • Sufixada com “Controller” • Actions • Métodosquetratam as requisições • Parâmetros simples oucomplexos • HttpRequestMessage/<T> • HttpResponseMessage/<T> • HttpPost, HttpGet, HttpPut e HttpDelete Estrutura da api public class ExemploController : ApiController { public string Get(string value) { } public HttpResponseMessage Get(HttpRequestMessage request) { } public HttpResponseMessage<Protocolo> Post(Pedido request) { } [HttpGet] public IEnumerable<Cliente> RecuperarClientes() { }} ASP.NET Web API - MVC Summit 2012

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

  6. Message Handlers • Rodam antes do model binding • Similar aoschannels do WCF • Lidam com as classes HttpRequestMessage e HttpResponseMessage • A mesmainstância é utilizadaportodas as operações da API • DelegatingHandler • Russian-dolls • Action Filters • Rodamdepois do model binding • Similar aosinspectors do WCF • Próximoaoquejáexiste no MVC • Aplicadoemváriaspartes • Açõesespecíficasou controllers inteiros interceptadores Cliente Controller MH1 HCD MH4 MH2 MH3 HCH HS Internet HCH: HttpClientHandler HS: HttpServer HCD: HttpControllerDispatcher ASP.NET Web API - MVC Summit 2012

  7. Identifica o formato do corpo da mensagem • Tanto a requisiçãoquanto a resposta • AlgunsFormatos • application/json • application/xml • application/x-www-form-urlencoded • text/html • image/png • Headers • Content-Type • Identifica o formato do corpoda mensagem • Accept • Indicaemqueformato o clientedeseja a resposta • Media Type Mappings • Estensível via MediaTypeFormatter Formatos ASP.NET Web API - MVC Summit 2012

  8. Próximoaoquejáexiste no MVC • Utilizadopelainfraestrutura • Podeserutilizadoparaextrairrecursospróprios • Também é estensível • Permiteplugar um container de DI • IDependencyResolver Injeção dedependências ASP.NET Web API - MVC Summit 2012

  9. Semobjetosestáticos • WebOperationContext.Current • WCFMock • Parâmetrospodemserfornecidosatravés do construtor • Emruntime, podemosrecorreraoDependencyResolver • Manipulaçãodireta via HttpRequestMessage e HttpResponseMessage • Estão “desconectadas” da infraestrutura • In-memory hosting parafacilitaros testes • Semqualqueruso da rede testes ASP.NET Web API - MVC Summit 2012

  10. Fazuso dos recursosincorporadosnalinguagem • A implementação é mais simples • IAsyncResults, Callbacks, Begin/End, etc. • No servidor • Melhorutilização dos recursos, escalabilidade • No cliente • Permiteumaaplicaçãomaisinterativa Processamentoassíncrono public class NoticiasRegionaisController : ApiController { public async Task<IEnumerable<Noticia>> Get(string cidade) { using (var client = new HttpClient()) return await (awaitclient.GetAsync(“http://outroServidor/noticias/” + cidade)) .Content .ReadAsync<IEnumerable<Noticia>>(); }} ASP.NET Web API - MVC Summit 2012

  11. Porqualquertecnologia • Sem WSDL • Acessoao(s) recurso(s) • Sem a necessidade de ferramental • Em .NET (System.Net) • HttpWebRequest/HttpWebResponse • WebClient • HttpClient • Flexibilidade • Com váriosfacilitadorespara o consumo de APIs REST. consumo ASP.NET Web API - MVC Summit 2012

  12. Consultas • IQueryable<T> • 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 • Pedro Félix • http://pfelix.wordpress.com/ • Carlos Figueira • http://blogs.msdn.com/b/carlosfigueira/ • Pablo Cibraro • http://weblogs.asp.net/cibrax/ • Pedro Reys • http://pedroreys.com/ • Elemar Junior • http://elemarjr.net/tag/rest/ • Meu Blog • http://www.israelaece.com/?tag=/rest Referências ASP.NET Web API - MVC Summit 2012

  14. Overview doASP.NET Web API MVC Summit 2012 Israel Aece http://www.israelaece.com ia@israelaece.com

More Related