Conhecendo os detalhes do formato Atom e do AtomPub e analisando como eles podem ser úteis em web services REST

Nas edições anteriores tivemos uma série de três artigos sobre web services. Fizemos primeiro uma análise teórica de diversos aspectos envolvidos na modelagem e desenvolvimento de serviços WS-* e REST. Em seguida tivemos um artigo prático de WS-* e outro de REST nos quais partimos de um mesmo problema e propusemos uma solução com ambas as linhas de serviços.

No artigo de REST nossa aplicação focou a ilustração dos principais conceitos envolvidos, mas sem introduzir muitos componentes que pudessem desviar a atenção do contexto principal. O objetivo após esta exposição inicial do tema é apresentar ferramentas e recursos que permitam aperfeiçoar o que fizemos neste artigo anterior.

Neste contexto de serviços REST, uma das coisas mais importantes que surgiu foi o formato Atom e seu protocolo de publicação, o Atom Publishing Protocol (comumente denotado por AtomPub). Este formato vem sendo bastante utilizado para encapsular dados em serviços REST e o AtomPub vem sendo adotado como blueprint de protocolo de comunicação desta linha de serviços.

Nossa proposta para este artigo é descrever o formato Atom e o AtomPub, e à medida que isto seja feito, indicar os pontos importantes que tornaram interessante a sua adoção no desenvolvimento de web services.

O que é o formato Atom

Atom é um formato de Syndication. Não existe uma tradução direta deste termo para português, mas isto é uma maneira de disponibilização de conteúdo. Esta é, por exemplo, uma alternativa ao envio de notícias e conteúdo por e-mail. Os dois formatos existentes de Syndication na internet são o RSS e o Atom.

A maioria dos fornecedores de conteúdo da internet utiliza esta forma de distribuição, pois ela é muito flexível e traz algumas vantagens sobre o uso de e-mail. Para consumir conteúdo neste formato não é necessário utilizar seu endereço de e-mail, então é muito menor a exposição a spam, vírus, e-mails falsos, entre outras coisas.

Além disso, este formato permite facilmente que um site agregue dinamicamente o conteúdo de diversas fontes para apresentação. As pessoas conseguem também compartilhar os feeds que assinam, e isto acabou se tornando uma importante ferramenta colaborativa.

O surgimento do formato

O formato Atom surgiu a partir da insatisfação de muitas pessoas com o RSS. O RSS possui várias versões diferentes e incompatíveis e isto dificultava bastante o desenvolvimento de aplicações que o manipulassem.

O objetivo dos criadores era elaborar um novo formato que fosse aberto, facilmente implementável por qualquer pessoa, extensível e claramente especificado.

Em 2004 foi formado um grupo de trabalho do IETF (Internet Engineering Task Force) para a elaboração deste novo formato, e a versão final da especificação foi publicada em Dezembro de 2004, constituindo a RFC 4287.

Detalhamento da estrutura

Os documentos Atom são constituídos de dois elementos principais: coleções e item de coleções (em inglês collections/feeds e entries). Na Listagem 1 podemos conferir um exemplo de documento Atom.

Listagem 1. Exemplo de feed Atom

            <?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">

 
<title>Feed de exemplo</title>

<link href="http://exemplo.org/"/>

<updated>2008-05-15T18:30:02Z</updated>

<author>

<name>Bruno Pereira</name>

</author>

<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>

 
<entry>

<title>Artigo de Atom na Java Magazine 57</title>

<link href="http://exemplo.org/2008/05/15/artigo-atom-java-magazine-57"/>

<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>

<updated>2008-05-15T18:30:02Z</updated>

<summary>Texto do post.</summary>

</entry>

</feed>
        

Analisando este documento simples, podemos falar de componentes importantes do Atom. Neste exemplo é apresentado um feed contendo uma entrada. Um feed é utilizado para agregar conteúdo de acordo com algum critério desejado pelo autores do mesmo. Podemos ter um feed agregando todos os posts de um blog, um feed contendo notícias do Rio de Janeiro, outro feed com podcasts técnicos de software, etc.

Após esta primeira exposição a um documento Atom, é interessante descrever com detalhes os elementos que podem ser utilizados neste formato. O quadro “Elementos de documentos Atom” apresenta os elementos padrão definidos para coleções e itens.

...

Quer ler esse conteúdo completo? Tenha acesso completo