Artigo no estilo: Curso
Do que trata o artigo

Neste artigo vamos criar uma aplicação completa de microblog utilizando ASP.NET. Este artigo está dividido em 3 etapas. Nesta terceira e última etapa vamos criar um serviço web baseado em REST, utilizando o ADO.NET Data Services, também conhecido como Astória.


Para que serve

O objetivo desta série de artigos é abordar todas as etapas de um projeto web, desde a criação do layout, montagem do HTML, criação da base de dados, estruturação da camada de acesso a dados, integração dos objetos com a camada de apresentação e finalmente a criação de serviços REST para expor informações desejadas.

Em que situação o tema é útil

Saber todas as etapas de um projeto web é essencial para qualquer programador. Desde a montagem do HTML a partir de uma imagem criada por um designer até a publicação no servidor de produção, existem muitas atividades que um bom desenvolvedor deve conhecer. Atrás de um exemplo prático veremos diversas boas práticas que podem lhe ajudar e muito a desenvolver produtos com mais qualidade.

Resumo do DevMan

Neste artigo vamos construir um microblog do início ao fim. Desde os conceitos mais básicos, passando pelo layout, montagem do HTML, banco de dados, camada de acesso a dados, integração com telas de apresentação, utilização de AJAX e até mesmo a criação de um serviço REST. É fundamental para qualquer profissional de TI conhecer as principais etapas de um projeto web. Nestes três artigos, veremos em detalhes como criar as principais partes que englobam o projeto, desde o “papel em branco” até a publicação da aplicação pronta em produção.

Na primeira parte deste artigo começamos com uma análise de alguns cenários típicos de projeto. Iniciamos a parte prática com a criação do layout em um editor de imagem, tranformamos o layout em HTML e validamos sua construção no W3C. Por fim, criamos a base da nossa plataforma AJAX.

Na segunda etapa criamos a base de dados, as entidades e classes utilizando o Entity Framework, cuja principal função é criar entidades conceituais (Entity Data Model) a partir de uma fonte de dados. Criamos a base de dados, a camada de autenticação (Figura 1), classes do repositório e integração com as telas (Figura 2 e Figura 3). Vimos também um pouco de LINQ e seus princípios.

Nesta terceira e última etapa do artigo vamos escrever um serviço web com autenticação personalizada, baseado nos princípios REST. Para o serviço vamos utilizar o ADO.NET Data Services (codinome Astória). Usando o REST, vamos simular a criação de uma API para o nosso DevTwit, tornando-o aberto para integração com sistemas de terceiros (como faz o Twitter). Faremos, inclusive, uma aplicação externa ao DevTwit que usará sua própria API.

Antes de aplicarmos as técnicas ao DevTwit, vamos examinar alguns fundamentos da arquitetura e tecnologias envolvidas, como IHttpModule (que será usado na parte se segurança), Web Services, RPC, REST, ADO.NET Data Services, detalhes sobre a segurança no REST e mais. Todos esses fundamentos são essencias e importantes para um perfeito entendimento da parte prática deste artigo.

Figura 1. Tela de autenticação do DevTwit

Figura 2. DevTwit com os posts principais, paginação e contador de caracteres

Figura 3. Respondendo um post específico

Web Services

Web services são uma maneira simples de integrar sistemas, utilizando como base um arquivo texto, estruturado, capaz de ser lido por praticamente qualquer plataforma. Hoje, temos inúmeros exemplos de sistemas que trabalham com Web Services. Desde uma loja virtual, que deseja capilarizar suas vendas, permitindo que outros web sites façam revendas, utilizando o seu mecanismo de pagamento e regras de negócios. Sistemas voltados à medicina e pesquisas também utilizam bastante esta tecnologia. Temos até serviços de informação, como busca de endereço através do CEP, consulta ao SERASA, cotações etc. Existem inúmeras formas de integrar sistemas através da web utilizando serviços, que podem ser tanto simples como mais complexos, dependendo da tecnologia aplicada.

RPC (Remote Procedure Call) significa chamada de procedimento remoto, utilizado para criação de aplicativos cliente/servidor. O RPC é um estilo (sendo o SOAP o protocolo mais utilizado) para criação de aplicativos cliente/servidor. O serviço permite que métodos (funções ou procedimentos) sejam invocados de outra máquina, como se estivessem trabalhando localmente. Isto permite criar serviços web focados nas operações, como carregarCliente(), adicionarCompra(), excluirRevista(), entre outros.

Qualquer plataforma que forneça uma comunicação HTTP e consiga trabalhar com arquivos XML pode implementar o SOAP de forma simples, dando uma grande vantagem de independência de plataforma. Por usar prioritariamente o transporte HTTP ele consegue ser transportado sem requisitar nenhuma configuração especial em redes e firewall. Em suma, se houver acesso à internet disponível, o web service poderá ser acessado. O web service pode ser projetado para trabalhar com diversos servidores (web farms), possibilitando assim um ganho de escalabilidade nunca antes visto.

REST

REST significa Representational State Transfer. É um conjunto de diretrizes de desenvolvimento de software para distribuição de sistemas hipermídia distribuídos que trabalham em cima do HTTP. O termo se originou no ano de 2000 em uma tese de doutorado de Roy Fielding, um dos principais autores da especificação do protocolo HTTP. O REST baseia-se nas requisições HTTP (POST, PUT, GET e DELETE).

Estes dados podem ser representados por JSON ou XML, definidos através do content-type. O content-type do HTTP define o tipo do conteúdo da resposta, como por exemplo, HTML, JPEG, XML, entre outros.

Quando os protocolos de comunicação foram surgindo, como exemplo, CORBA e SOAP, um movimento contra estes protocolos surgiu, alegando que eles não entendiam os princípios básicos de comunicação via Internet. O HTTP havia sido projetado para atender todas as necessidades que o CORBA, SOAP e outros procuravam suprir. O REST, por se basear em comunicação voltada a HTTP, é facilmente integrado com outros sistemas independente da plataforma.

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