您的情況可能的解決辦法是添加一個字段「關閉」或類似。
您可能已經有一個字段user
或author
或類似的內容,指定誰在做請求。
所以,當你創建一個註釋
POST mysite.com/comments HTTP/1.1
{
"body": "hey sway",
"user": "John",
"closed": "no"
}
這是使用JSON和僅僅是一個例子,我不知道你的服務器是如何實現的,但並不真正的問題。
然後,「封閉」評論你會做一個補丁(部分更新)該資源
PATCH mysite.com/comments/12345
{
"closed": "yes"
}
根據您的服務器是如何實現的,只提供了需要更新的字段/編輯可能就足夠了。但是,因爲你只需要批註的創建者能夠關閉它,你就應該包括在請求user
還有:
PATCH mysite.com/comments/12345
{
"user": "John"
"closed": "yes"
}
上面的例子假設爲創建註釋的資源ID爲12345
像你的榜樣。
然後在服務器上,您可以檢查是否允許John
關閉註釋。
所以總結起來
是什麼網址是什麼樣子?
的URL是相同的,因爲它是一個GET
什麼是體包含哪些內容?
需要更新/編輯的所有字段,並user
HTTP動作應怎樣使用?
由於您部分更新資源,因此PATCH最有意義。
因此,繼續觀察我是否有一個體面的理解:「資源」實際上並不一定與存儲在數據存儲中的內容完全一致,是嗎?例如,假設我想禁止一個用戶回覆,我可以擁有一個名爲「banuser」的「屬性」。或者如果我想對評論發表評論,我可以有一個名爲upvote的「財產」。那是對的嗎? – John
@John是的。在這些情況下,對於用戶而言,使用「禁用」字段而不是「banuser」會更有意義,因爲它是一種說明用戶的屬性,而不是操作。選票相同;你會給評論一個字段'upvotes',記錄upvotes的數量,評論有 –
@John我意識到我沒有真正回答你的問題在你以前的評論..「的」資源「實際上並不必與數據存儲中保存的內容完全一致,是嗎?「它實際上是。這裏的關鍵部分是動作沒有在資源的字段中定義,這些字段提供了有關用戶的信息。對某個資源執行某些操作的操作是另一回事 –