2010-12-10 46 views
8

我正在設計一個restful api,並嘗試第一次真正做到這一點。在嵌套資源上對POST和PUT進行適當的RESTful響應

我已經定義了一些嵌套資源(博客文章中的評論),並且該選擇反映了評論嵌套在mongo中的博客文章文檔中的事實。

我沒有興趣在上下文之外提供個別註釋,所以我推遲實現嵌套資源的GET。但是,將POSTing實現到評論集合並將其發佈到評論uri是有意義的。

具體的問題:

1)是否有意義,以使用201柱和Location頭設置爲父資源應對?如果不是,我如何溝通父母的位置以通知客戶的導航選擇?

2)PUT的類似問題,我如何最好地向客戶端傳達它應該查找父資源以查找其更新? (最好沒有客戶必須對我的uri計劃做出假設)。地理位置標題在200上是否合理?

回答

12

儘管我自己從來沒有這樣做過,但我聽說過爲此目的使用Content-Location標頭的人。 Content-Location用於標識由返回的實體表示的資源的位置。

在您的PUT和POST的情況下,您可能實際上並不想返回整個博客帖子,所以我不確定它是否有效返回Content-Location標頭,即使您沒有返回表示在迴應中。

說了這麼多,我想不出任何負面影響,所以這裏是我的建議:

PUT /Blog/343/Comment/23 
=> 
200 OK 
Content-Location: /Blog/343 


POST /Blog/343/Comments 
=> 
201 Created 
Location: /Blog/343/Comment/24 
Content-Location: /Blog/343 
+0

大指針!我們將其稱爲「極簡主義表示」= o) – BnWasteland 2010-12-11 08:47:15