REST方式思考創建嵌套的資源,是否正確使用POST在一個單一的呼叫,建立資源及其子資源? 在我的應用程序中,我有資源/notices/{notice}
和子資源/notices/{notice}/photos/{photo}
。如果沒有{notice}
,則{photo}
不能存在,但{notice}
不具有必要的照片。通常,我必須首先執行POST來創建通知,然後再執行另一個POST來添加照片。REST - 單POST
現在,我想允許創建帶有直接附加照片的通知,通過一個POST請求創建/notices/{notice}
和/notices/{notice}/photos/{photo}
,並向/ notices/{notice}/photos/{photo}創建多部分內容描述這兩個資源(通知的JSON,照片的二進制)。我想我只會爲子資源返回位置標題。
從本質上講,我想這阻止Android的客戶端發送兩個POST請求到服務器上載的通知有照片。 這是正確的嗎?還是它違反REST原則?我應該考慮讓他們分開並提出兩個不同的要求嗎?或者從通知中考慮將照片分爲單獨的實體是否是錯誤的?我應該只保留/notices/{notice}
作爲資源,使用PUT添加照片?
哪一個是最好的解決方案?
當然由邏輯終點後一切都將是根資源的修改,因此使'POST'多餘的想法? (我可能誤解了你?) – James
理論上,是的。您可以將/ questions作爲stackoverflow.com的子資源。但是,這不會導致POST冗餘。 –
我會爭辯說,使用'POST'將是唯一明智的選擇,因爲OP沒有修改最重要的資源(直接)?用'PUT'創建資源意味着這個子資源已經存在? – James