比方說,我們有一個服務來添加一個新的酒店:如何在RESTful POST中返回生成的ID?
> POST /hotel
> <hotel>
> <a>aaa</a>
> <b>aaa</b>
> <c>aaa.......this is 300K</c>
> </hotel>
然後我們有一個GET:
> GET /hotel
< HTTP/1.1 200 OK
< <hotel>
< <a>aaa</a>
< <b>aaa</b>
> <c>aaa.......this is 300K</c>
< </hotel>
的問題是什麼我們返回初始POST創造?我們想要返回一個「引用」到新資源的ID(在服務器上生成),但我們不想返回所有酒店數據,因爲在我們的情況下,其中一個數據字段是一個大約300K的平面文件。
所以你應該剛剛返回:
< HTTP/1.1 200 OK
< <hotel>
< <id>123</id>
< </hotel>
還是應該返回完整的對象:
< HTTP/1.1 200 OK
< <hotel>
< <id>123</id>
< <a>aaa</a>
< <b>aaa</b>
> <c>aaa.......this is 300K</c>
< </hotel>
?
我對寧靜的最佳實踐感興趣。
注意:這個相關的post會談到更多關於返回的內容,而不是關於如何返回它。
回答要了解如何設置位置標題: http://www.java-forums.org/blogs/spring-framework/544-restful-post-method-spring.html – db42 2012-07-26 06:01:00