HTTP MODIFY verbo para REST?

Tanto quanto eu vejo, não há maneira RESTful de aplicar uma modificação a um recurso. Para fazer isso, você tem que colocar o recurso como um todo, sobrescrevendo a representação anterior. Eu acho que isso é fonte de problemas, em especial quando o recurso tem uma grande representação.

Eu acredito que isso sugere a falta de um verbo no HTTP1.1: algo como MODIFY ou PATCH. Nem mesmo o WebDAV tem esse verbo (ele possui PROPPATCH, cujo conceito é semelhante, mas não para os recursos).

O atual conjunto de verbos HTTP 1.1 não é muito limitado para o RESTing do mundo real?

Editar: Encontrei uma proposta no IETF sobre o verbo PATCH

http://tools.ietf.org/html/draft-dusseault-http-patch-15

Esta especificação define o novo método HTTP / 1.1 [RFC2616] PATCH que é usado para aplicar modificações parciais em um recurso.

Um novo método é necessário para melhorar a interoperabilidade e evitar erros. O método PUT já está definido para sobrescrever um recurso com um novo corpo completo e não pode ser reutilizado para fazer alterações parciais. Caso contrário, proxies e caches e até mesmo clientes e servidores podem ficar confusos quanto ao resultado da operação. O PATCH foi mencionado em especificações HTTP anteriores, mas não completamente definido.

Tanto quanto eu vejo, o único problema de tal verbo é a falta de idempotência.

Editar: Em março de 2010, a RFC 5789 existe (Método PATCH para HTTP).

questionAnswers(4)

yourAnswerToTheQuestion