Jak zwrócić wygenerowany identyfikator w RESTful POST?

Powiedzmy, że mamy usługę dodania nowego hotelu:

> POST /hotel
> <hotel>
>   <a>aaa</a>
>   <b>aaa</b>
>   <c>aaa.......this is 300K</c>
> </hotel>

A potem dostajemy:

> GET /hotel

< HTTP/1.1 200 OK
< <hotel>
<   <a>aaa</a>
<   <b>aaa</b>
>   <c>aaa.......this is 300K</c>
< </hotel>

Pytanie brzmi: co powracamy przy początkowym tworzeniu POST? Chcielibyśmy zwrócić identyfikator (wygenerowany na serwerze) dla „odniesienia” do nowego zasobu, ale nie chcemy zwracać wszystkich danych hotelowych, ponieważ w naszym przypadku jedno z pól danych jest plikiem płaskim o wielkości ~ 300K .

Więc powinieneś wrócić:

< HTTP/1.1 200 OK
< <hotel>
<   <id>123</id>
< </hotel>

Lub powinieneś zwrócić cały obiekt:

< HTTP/1.1 200 OK
< <hotel>
<   <id>123</id>
<   <a>aaa</a>
<   <b>aaa</b>
>   <c>aaa.......this is 300K</c>
< </hotel>

??

Jestem zainteresowany spokojną najlepszą praktyką.

Uwaga: to związanesłupek mówi więcej o tym, co zwrócić, ale mniej o tym, jak go zwrócić.

questionAnswers(3)

yourAnswerToTheQuestion