Eu tenho tido um debate sobre o que fazer com uma barra final em uma API RESTful.
Digamos que eu tenho um recurso chamado cães e recursos subordinados para cães individuais. Podemos, portanto, fazer o seguinte:
GET/PUT/POST/DELETE http://example.com/dogs
GET/PUT/POST/DELETE http://example.com/dogs/{id}
Mas o que fazemos com o seguinte caso especial:
GET/PUT/POST/DELETE http://example.com/dogs/
Minha opinião pessoal é que isso significa enviar uma solicitação para um recurso individual de cão com id = null
. Eu acho que a API deve retornar um 404 para este caso.
Outros dizem que a solicitação está acessando o recurso dogs, ou seja, a barra final é ignorada.
Alguém sabe a resposta definitiva?
dogs
e dogs/
como equivalente. Para mim, é claro que dogs/
é um diretório que contém os cães individuais. É menos claro o que dogs
é, mas eu trataria isso como equivalente, assim como a maioria dos servidores da Web aceita acessos a diretórios sem o rastreamento /
.