Considere as seguintes afirmativas acerca de métodos HTTPda API REST: I- O método CONNECT solicita a representação de um recurso específico. Requisições utilizando o método CONNECT devem retornar apenas dados. II- O método POST é utilizado para enviar dados para um servidor web e criar um novo recurso. Ele é comumente usado em formulários HTML, onde os dados são enviados ao servidor para serem processados e armazenados. III- O método DELETE é utilizado para solicitar a exclusão de um recurso existente em um servidor web. Ele não é adequado para criar novos recursos. IV- O método PUT é utilizado para atualizar um recurso existente em um servidor web. Embora possa ser usado para criar um recurso, se a URI (Uniform Resource Identifier) for conhecida com antecedência, ele não é amplamente utilizado para criar novos recursos. O método PUTé principalmente usado para atualizar recursos existentes. São CORRETAS apenas as afirmativas:
- A)I, II e IV.
Errada, porque a afirmativa I está incorreta ao atribuir ao CONNECT a função de obter representação de recurso.
- B)I, III e IV.
Errada, porque a afirmativa I está incorreta, mesmo que III e IV estejam corretas.
- C)II e III.
Errada, porque II e III estão corretas, mas a banca também considera a IV correta.
- D)III e IV.
Errada, porque III e IV estão corretas, mas a II também está correta e não pode ser descartada.
- E)II, III e IV.
Certa, pois II, III e IV estão corretas e a I está errada.
Gabarito: E
Na REST, cada método HTTP tem um papel bem definido, e a banca adora trocar uma função pela outra para testar se voce realmente conhece o básico. Pense assim: GET busca, POST envia/cria, PUT atualiza (e pode criar em alguns cenários), DELETE remove e CONNECT faz túnel, não “pega recurso”. A afirmativa I está errada porque o método CONNECT não solicita a representação de um recurso. Ele é usado para estabelecer um túnel de comunicação, geralmente em conexões via proxy, como no caso de HTTPS. Ou seja, a ideia dele é conectar, não retornar dados de um recurso como faz o GET. As afirmativas II e III estão corretas. O POST é usado para enviar dados ao servidor e, com muita frequência, criar novos recursos, especialmente em formulários web. O DELETE, por sua vez, é o método típico para excluir um recurso existente, então ele não serve para criação. A afirmativa IV também está correta. O PUT é tradicionalmente associado à atualização de um recurso existente, mas, se a URI já for conhecida, ele também pode ser usado para criar o recurso naquela posição. Esse entendimento bate com a semântica dos métodos descrita nas especificações HTTP, como a RFC 9110. Por isso, o gabarito E está certo: apenas II, III e IV são verdadeiras.