【发布时间】:2013-11-14 04:51:48
【问题描述】:
我正在开发一个可以将特定资源指定为“活动”的 REST API。为了说明,这是我想要实现的一个简单示例:
假设我有一个代表书籍集合的 URI:/books。
给定的图书具有/books/{id} 形式的规范URI。
我有另一个 URI,它提供指向活动书籍的指针:/books/active。这将简单地发送一个 HTTP 303 引用活动书籍的规范 URI。
让客户同时更新有效图书的最佳方式是什么?我是否应该允许客户在/books/active 上发出 PUT,指定活动书籍的规范 URI,还是有另一种普遍接受的模式来做这种事情? (对我来说,客户端会发出一个发送规范 URI 而不是资源的实际表示的 PUT 对我来说似乎很奇怪。)
更新: 一次只能激活一本书(互斥),所以我认为将激活标志作为图书本身的属性是没有意义的,因为那样会暗示不止一本书可以将值设置为 true。
【问题讨论】:
-
活跃是图书资源的属性吗?另外,是否有更高级别的资源包含书籍(如书架等)?
-
@bryanmac 我已经更新了我的问题以澄清活动的定义。而且,是的,在我的案例中还有一个更高级别的资源。我只是想让示例保持简单,但可以随意使用更高级别的资源作为答案的一部分。谢谢。
-
整个系统一次只能激活一本书?还是每个用户都这样?
-
我也不明白为什么使用规范 URI 发出 PUT 对您来说似乎很奇怪。使用 URI 作为资源 ID 内置于 GET 和 PUT 的定义中。
标签: http rest design-patterns