Bom, neste artigo vou apresentar um banco de dados orientado a documentos usando CouchDB, um dos mais populares do ramo, e vou passar uma dica introdutória de comandos básicos e um poco de teoria.
Obs.: Antes de ir direto para prática vamos ao conceito REST.
O REST utiliza um subconjunto de métodos disponíveis no protocolo HTTP para realizar suas operações. De acordo com a especificação do protocolo HTTP em (Fielding, et al., 2004) e a arquitetura definida por Fielding (Fielding R. T., 2000), os métodos utilizados pelo REST são:
1. GET: uma operação de somente leitura. Esta operação é idempotente e segura, significando que não importa a quantidade de vezes que a operação seja aplicada, ou seja, o recurso seja lido, o resultado deve ser sempre o mesmo. O ato de ler um documento HTML não deve mudar o documento. Segura significa que ao invocar uma operação GET o estado do servidor não irá ser alterado, ou seja, além da do consumo de recursos de CPU e memória do servidor, nada mais será afetado (Burke, 2008);
2. PUT: geralmente relacionada com uma operação de inserção ou atualização. Assim como o GET, também é idempotente, porém ao usar o PUT, o cliente deve ter em mãos o recurso que está se criando ou atualizando. A operação é idempotente pois ao enviar mais de uma requisição não irá afetar o serviço em questão.
(Burke, 2008) faz uma analogia com o processador de textos Microsoft Word: não importa a quantidade de vezes que você clica no botão Salvar, o arquivo que será armazenado será logicamente o mesmo documento;
3. DELETE: utilizado para remover serviços. É idempotente, ao passo
que remover algo que já não está lá não é um problema;
4. POST: a única operação não idempotente e insegura do HTTP. Este método não sofre muitas limitações exatamente para prover ao sistema a possibilidade de executar outras operações fora do contexto do GET (leitura), PUT (inserção e atualização) e DELETE (remoção). No REST, é utilizada para modelar um serviço de fabricação de objetos. Quando se usa o método PUT, sabe-se exatamente o que está sendo criado, com o POST, é atribuído ao servidor a tarefa de criar o objeto.
[2] Comentário enviado por dastyler em 01/09/2010 - 22:33h
Eu experimentei um tempo atras o CouchDb mas infelizmente devido a falta de tempo com inumeros projetos tive de parar os testes.
MAs gostei do artigo. Muito interessante, apesar de que o CouchDb não é uma novidade. A galera que é adepta de Xp (Extreme Programming) já usa o mesmo tem um tempinho.
De qualquer maneira o artigo está muito bom, direto simples e sem firulas.