2014-09-02 23 views
1

我有一組在REST API資源的所有資源REST補丁,可以說,它是這樣的:給定類型

GET /folders 
[{ "id": "x", "watched": true }, { "id": "y", "watched": true }, ...] 

我實現了「停止監視」命令補丁:

PATCH /folders/x { "watched": false } 

什麼是實施「停止觀看所有文件夾」的正確方法? 我想到

PATCH /folders { "watched": false } 

但我不知道這是有道理的(集合本身不具有watched屬性)。

或者它不應該在API級別上實現(而是由客戶端迭代)?
雖然這似乎效率低下。

回答

1

我認爲PATCH /folders { "watched": false }是完全合適的。讓實現決定如何使用給定的預期資源狀態表示(您的JSON)修補文件夾。對資源表示應該是什麼樣子沒有約束,它們應該是自描述性的,所以在這種情況下,它們應該有一個標準的內容類型,就是這樣。 (GET響應可能不同)。

我不建議您迭代客戶端的集合,因爲它不是原子的,它可能會隨時丟失連接。你應該只發送一個關於這個的請求。