REST PATCH用于给定类型的所有资源

时间:2014-09-02 23:38:40

标签: rest http-patch

我在REST API中有一组资源,让我们这样说:

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

我已经将“停止观看”命令实现为PATCH:

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

实施“停止观看所有文件夹”的正确方法是什么? 我想到了

PATCH /folders { "watched": false }

但我不确定这是否有意义(集合本身没有watched属性)。

或者它根本不应该在API级别上实现(而是由客户端迭代)? 但这似乎效率低下。

1 个答案:

答案 0 :(得分:1)

我认为PATCH /folders { "watched": false }是完全合适的。让实现决定如何使用给定的预期资源状态(您的JSON)表示修补文件夹。对资源表示的外观没有限制,它们应该是自描述的,因此在这种情况下,它们应该具有标准的内容类型,这就是全部。 (GET回答可能不同。)

我不建议您通过客户端迭代集合,因为它不是原子的,它可能随时丢失连接。您应该只发送一个关于此的请求。