Como retornar o ID gerado no POST RESTful?
Digamos que tenhamos um serviço para adicionar um novo hotel:
> POST /hotel
> <hotel>
> <a>aaa</a>
> <b>aaa</b>
> <c>aaa.......this is 300K</c>
> </hotel>
E então nós temos um get:
> GET /hotel
< HTTP/1.1 200 OK
< <hotel>
< <a>aaa</a>
< <b>aaa</b>
> <c>aaa.......this is 300K</c>
< </hotel>
Pergunta é o que retornamos para a criação inicial do POST? Gostaríamos de retornar a ID (gerada no servidor) para uma "referência" ao novo recurso, mas não queremos retornar todos os dados do hotel, já que, no nosso caso, um dos campos de dados é um arquivo simples de ~ 300K .
Então você deve apenas retornar:
< HTTP/1.1 200 OK
< <hotel>
< <id>123</id>
< </hotel>
Ou você deve retornar o objeto completo:
< HTTP/1.1 200 OK
< <hotel>
< <id>123</id>
< <a>aaa</a>
< <b>aaa</b>
> <c>aaa.......this is 300K</c>
< </hotel>
??
Estou interessado na boa prática tranquila.
Nota: isto relacionadopostar fala mais sobre o que devolver mas menos sobre como devolvê-lo.