REST como lidar com parâmetros de consulta quando colocados no recurso?
Pergunta
Eu tenho um serviço de dados REST onde desejo permitir que os usuários criem novos itens com HTTP PUT usando diferentes formatos como json,xml,csv.Não tenho certeza de como lidar melhor com a especificação do formato no URL:
PUT /ressource/ID/json
PUT /ressource/ID/xml
ou
PUT /ressource/ID?format=json
PUT /ressource/ID?format=xml
Então, qual é a melhor maneira de especificar um indicador de formato?
Se eu especificar o formato com um parâmetro de consulta e quiser fazer um PUT
como posso fazer isso com curl?
curl -T test/data.json -d "format=json" http://localhost:5000/resource/33
não funciona.
curl -T test/data.json http://localhost:5000/update?format=json
funciona, mas prefiro deixar o curl construir os parâmetros de consulta em vez de adicioná-los sozinho.
Solução
Um princípio geral dos serviços web RESTful é usar os recursos integrados ao HTTP, quando aplicável.Neste caso, você pode indicar o formato do conteúdo da sua solicitação PUT definindo o parâmetro Tipo de conteúdo cabeçalho para aplicativo/json ou aplicativo/xml.