Regra da API REST sobre encapsulamento


11

Basta ler isso no livro de regras da API REST : GET e POST não devem ser usados ​​para encapsular outros métodos de solicitação .

O encapsulamento se refere a qualquer abuso de HTTP que mascara ou deturpa a intenção de uma mensagem e prejudica a transparência do protocolo. Uma API REST não deve comprometer seu design usando mal os métodos de solicitação do HTTP, em um esforço para acomodar clientes com vocabulário HTTP limitado . Sempre faça uso adequado dos métodos HTTP, conforme especificado pelas regras nesta seção. [destaques por mim]

Porém, muitas estruturas usam o tunelamento para expor as interfaces REST por meio de formulários HTML, pois <form>apenas conhecem GETe POST. Meu exemplo mais recente é um MethodRewriteMiddlewarepara balão (enviado pelo autor da estrutura): http://flask.pocoo.org/snippets/38/ .

Alguma maneira de cumprir a "Regra" sem hacks ou complementos em estruturas da web?

Respostas:


4

Não, não existe. Portanto, se você precisar, quebre a regra de qualquer maneira.

Não sei qual é o problema. Protocolos encapsulam outros protocolos o tempo todo. O TCP / IP, por exemplo, possui quatro camadas dessa abstração .

Obviamente, o melhor caminho é que os clientes obtenham o programa e suportem os verbos HTTP corretamente. Mas não é um mundo perfeito.


Obrigado, bem, todo mundo está fazendo isso de qualquer maneira (e outros protocolos fazem isso por design, como você mencionou). Fiquei um pouco surpreso ao encontrar a "regra" escrita com tanta clareza.
Miku #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.