ASP.NET Web API (Parte 1)


No início desta semana eu escrevi sobre o lançamento da ASP.NET MVC 4 Beta. A ASP.NET MVC 4 é uma atualização significativa que traz com ela um monte de novos recursos e capacidades. Uma das melhorias com a qual eu fico mais animado é o suporte que ela traz para a criação de "Web APIs" ou APIs Web. O post de hoje é o primeiro de vários que vou escrever que falam sobre esta nova funcionalidade.

Web APIs

Os últimos anos viram a ascensão de Web APIs - serviços expostos através de HTTP simples, ao invés de um contrato de serviço mais formal (como SOAP ou WS *). Expor serviços desta forma pode tornar mais fácil integrar funcionalidades com uma ampla variedade de dispositivos e plataformas clientes, bem como criar experiências HTML mais ricas usando JavaScript no navegador. A maioria dos grandes sites na web agora expõem Web APIs (alguns exemplos: Facebook, Twitter, LinkedIn, Netflix, etc), e o uso delas vai acelerar ainda mais nos próximos anos devido à proliferação de dispositivos conectados e também por causa da demanda de experiências mais ricas por parte do usuário.

Nosso novo suporte a Web APIs da ASP.NET permite que você facilmente crie Web APIs poderosas que podem ser acessadas a partir de uma ampla gama de clientes (que variam de navegadores usando JavaScript, até aplicações nativas em qualquer plataforma móvel/cliente). Este novo suporte fornece o seguinte:

  • Modelo de programação HTTP moderno: Acesse diretamente e manipule solicitações e respostas HTTP em suas APIs Web usando um modelo de objetos limpo e fortemente tipado. Além de suportar este modelo de programação HTTP no servidor, também suportamos o mesmo modelo de programação no cliente com a nova API HttpClient que pode ser usada para chamar APIs Web a partir de qualquer aplicação .NET.
  • Negociação de conteúdo: A Web API tem suporte nativo para negociação de conteúdo - o que permite que o cliente e o servidor trabalhem em conjunto para determinar o formato adequado para os dados que estão sendo retornados de uma API. Nós fornecemos suporte padrão para os formatos JSON, XML e URL-encoded, e você pode estender esse suporte adicionando seus próprios formatadores, ou até mesmo substituir a estratégia padrão de negociação de conteúdo com uma de sua preferência.
  • Composição de consultas (queries): A Web API permite que você facilmente suporte consultas através das convenções de URL OData. Quando você retornar um tipo de IQueryable<T> de sua Web API, o framework irá fornecer automaticamente suporte a consultas OData para ele - tornando fácil implementar paginação e ordenação dos dados.
  • Vinculadores do modelo (Model binders) e validação: Vinculadores do modelo de dados fornecem uma maneira fácil para extrair dados de várias partes de uma solicitação HTTP e convertem essas partes da mensagem em objetos do .NET que podem ser usados ​​por ações da Web API. A Web API suporta a mesma infraestrutura de vinculação do modelos de dados e validação que a ASP.NET MVC suporta hoje.
  • Rotas: Web APIs suportam o conjunto completo de capacidades de roteamento que estão presentes na ASP.NET MVC e ASP.NET hoje, incluindo parâmetros de rota e restrições. A Web API também fornece convenções inteligentes por padrão, permitindo que você facilmente crie classes que implementam Web APIs sem ter que aplicar atributos em suas classes ou métodos. A configuração da Web API é realizada exclusivamente através de código - deixando seus arquivos de configuração limpos.
  • Filtros: Web APIs permitem que você facilmente use e crie filtros (por exemplo: [autorização]) permitindo a encapsulação e aplicação de comportamento.
  • Testabilidade melhorada: Ao invés de definir detalhes do objeto HTTP em objetos estáticos do contexto, as ações da Web API podem agora trabalhar com instâncias de objetos HttpRequestMessage e HttpResponseMessage - dois novos objetos HTTP que (entre outras coisas) tornam os testes muito mais fáceis. Como exemplo, você pode testar suas Web APIs sem ter que usar um framework para simular objetos (Mocking framework).
  • Suporte à IoC: A Web API suporta o localizador de serviço (service locator) implementado pela ASP.NET MVC, que permite resolver as dependências para diferentes objetos. Você pode facilmente integrar esse suporte com um contêiner IoC ou framework para injeção de dependência para permitir a resolução de dependências de uma maneira limpa.
  • Hospedagem Flexível: Web APIs podem ser hospedadas em qualquer tipo de aplicação ASP.NET (incluindo aplicações baseadas em ASP.NET MVC e ASP.NET Web Forms). Nós também projetamos o suporte para Web APIs de maneira que você possa também, opcionalmente, hospedar/expor as mesmas dentro de seu próprio processo, se você não quiser usar a ASP.NET/IIS. Isso te dá máxima flexibilidade em como e onde usá-las.

Aprendendo Mais

Visite www.asp.net/web-api (em Inglês) para encontrar tutoriais sobre como usar a ASP.NET Web API. Você também pode me assistir falando e demonstrando a ASP.NET Web API no vídeo da minha palestra sobre a ASP.NET MVC 4

No meu próximo post vou mostrar como criar uma nova Web API, os princípios básicos de como ela funciona, e como você pode chamá-la programaticamente a partir de um cliente.

Espero que ajude,

Scott

P.S. Além do blog, eu uso o Twitter para disponibilizar posts rápidos e para compartilhar links. Meu apelido no Twitter é: @scottgu


Texto traduzido do post original por Leniel Macaferi.

No Comments