De que se trata o artigo

Recentemente a Microsoft lançou junto com o Visual Studio 2012 o ASP.NET Web API, um framework que possibilita a criação de serviços HTTP de forma prática e já bem definida. O artigo vai apresentá-lo e também as tecnologias e protocolos que o complementam. Para demonstrar, veremos a criação de um projeto que usa serviços HTTP, com a capacidade de integração através de uma arquitetura orientada a recursos.

Em que situação o tema é útil

Através do ASP.NET Web API pode-se expor, por exemplo, acesso a funcionalidades de um sistema como “me forneça o estoque do produto com ID=32” ou ainda, a lista de todos os usuários da rede social XYZ que tenham como assunto de interesse “desenvolvimento para dispositivos móveis”. Ou seja, exposição e integração de informações que podem ser consumidas por outros sistemas afim de tomada de decisão ou oferta de produtos. É uma arquitetura extremamente útil para a integração de aplicações que precisam ter um servidor (nesse caso um serviço) consumido por diversos tipos de aplicações clientes, em diferentes plataformas, como aplicações Desktop, Mobile entre outros.

ASP.NET Web API

Junto ao ASP.NET MVC 4 a Microsoft trouxe o ASP.NET Web API, um framework capaz de prover serviços HTTP de forma simples e segura. Neste artigo veremos como desenvolver serviços HTTP através de um exemplo e ainda o aspectos de segurança como autenticação. Pense em uma Web API como uma “camada” que provê serviços sobre o protocolo HTTP, ao invés de simples páginas HTML como faz o ASP.NET. Isso significa que o servidor ASP.NET agora é capaz de não apenas interpretar requisições de páginas (uma abordagem tradicional), mas solicitações de métodos de negócio, consultas diretas a dados que podem ser serializados em XML ou JSON e consumidos em aplicações rodando em Smartphones, Tables ou mesmo Web e Desktop.
Autores: Guinther Pauli e Fabio Navarro

Hoje em dia, cada vez mais assistimos a uma exposição e consumo, por parte de pessoas e empresas, por informação. Temos sistemas que mostram onde estamos, o que estamos fazendo, onde vamos e futuramente até o que estamos vendo. Olhando este cenário do ponto de vista técnico, como desenvolvedores e até mesmo como empreendedores, pensamos em como disponibilizar esta informação e que esta informação atinja a maior quantidade possível de pessoas e por conseguinte dispositivos.

Vemos uma maior integração entre os mais diferentes sistemas e dispositivos, para citarmos exemplos temos: Twiter, Facebook, Google entre outros que disponibilizam interfaces, conexões, serviços para que outros sistemas possam se conectar e obter informações valiosas, diga-se de passagem, gerando volume e movimentando a economia.

Partindo desta introdução, neste artigo veremos uma tecnologia que já existe há algum tempo, mas que foi trazida recentemente pela Microsoft e nos possibilita criar estas interfaces, estas conexões, estes serviços, usando a ASP.NET Web API. Este framework faz parte do novo pacote do ASP.NET MVC 4, que possui muitas outras novidades, as quais no entanto estão fora do escopo do artigo.

O que é ASP.NET Web API?

Segundo a Microsoft em seu site oficial do Web API (seção Links) o ASP.NET Web API é um framework que possibilita a criação de Serviços HTTP de forma simples e que possibilitam atingir um grande número de clientes como dispositivos móveis e browsers. Além disso, possibilita a construção de serviços RestFul (veremos mais a frente uma seção sobre este estilo de arquitetura de sistemas distribuídos).

Construído sobre o .net Framework e empacotado sob o ASP.NET MVC 4, o ASP.NET Web API pode ser utilizado em conjunto com o ASP.NET MVC 4 ou com o ASP.NET Web Forms, ou ainda sozinho, sem nenhuma dependência de outros projetos. Ele pode ser instalado via Nuget ou por meio do site oficial através de instalação online.

Caso você tenha instalado o Visual Studio 2012 verá que ao criar um projeto ASP.NET MVC 4 poderá escolher o Template do Web API (Figura 1), mas o mesmo pode ser feito para o Visual Studio 2010.

Figura 1. Template ASP.NET Web API para VS2012

Neste artigo usaremos o novíssimo Visual Studio, mas o mesmo projeto pode ser desenvolvido no Visual Studio 2010 sem maiores dificuldades ou diferenças.

Por que e para que utilizar o ASP.NET Web API?

Basicamente podemos citar três motivos para utilizar ASP.NET Web API:

· Atingir uma grande variedade de dispositivos (Figura 2);

· Escalabilidade com Cloud;

· Sem necessidade de camada extra, somente HTTP.

Figura 2. ASP.NET Web API e múltiplos dispositivos - Fonte: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV309

ASP.NET Web API: Características

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 suporta 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. Na prática, no servidor você pode por exemplo retornar uma coleção de objetos do tipo Cliente. Nas aplicações clientes este mesmo tipo é trabalho em formatos com JSON / XML, por exemplo. Ao retornar ao servidor, a API automaticamente se encarrega de desserializar o JSON / XML para um objeto ou coleção fortemente tipada;

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. O ASP.NET Web API oferece 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 (Nota DevMan 1). 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, por exemplo, paginação e ordenação dos dados;

Nota DevMan 1

O Open Data Protocol (OData) é um protocolo Web aberto para consulta e atualização de dados. O protocolo permite a um consumidor consultar uma fonte de dados sobre o protocolo HTTP e obter o resultado de volta em formatos como Atom, JSON ou XML, incluindo paginação, ordenação ou filtragem dos dados. Diferente de padrões baseados em RPC (como Web Services), onde é necessário criar métodos específicos para cada operação, OData se restringe as operações básicas HTTP como GET e POST e permite que o cliente descubra recursos do servidor através da URL (e não por métodos).

...
Quer ler esse conteúdo completo? Tenha acesso completo