3

您将如何以 RESTful 方式实现复制粘贴支持?

假设我有书店资源。每家商店都有书

http://mydomain.com/rest/book-stores/1
http://mydomain.com/rest/book-stores/1/books/12

我需要客户端能够调用将一本书复制粘贴到另一家商店。

实施以下内容:

PUT http://mydomain.com/rest/books/1/copy-paste

看起来很像RPC。您有什么建议如何以 RESTful 方式建模此操作?

4

3 回答 3

9

复制 = 获取http://mydomain.com/book/1

粘贴 = PUT http://mydomain.com/book/2 或 POST http://mydomain.com/book

于 2009-05-13T18:15:57.610 回答
1

如果您的资源被组织成模仿分层系统,这只是一个问题。就像一个文件系统。

我更喜欢非分层资源。文件的“路径”只是文件的属性。要复制粘贴,有两种选择。

  1. 如果您真的只是想要另一个“路径”引用,请为“路径”属性添加另一个条目。相同的确切文件“在”两个“文件夹”中。

  2. 如果您需要新版本的文件,然后有效地分叉更改,请创建具有不同“路径”属性的新资源(不同的 URI)。

  3. 要移动,只需更改“路径”属性。

如果您必须坚持分层,只需模仿文件系统复制粘贴和移动的方式。

副本很简单。要复制的资源的 GET。

粘贴一个 POST,因为您正在创建一个新资源,一个新 URI。

如果您需要移动,您可能需要删除旧资源。

如果您愿意,您可以在删除请求中指定一个位置,从而允许服务器重定向在其旧位置寻找移动资源的用户。

于 2009-07-09T14:24:08.123 回答
0

我会拥有它,以便用户执行 PUT 命令来执行操作。

因此,表单数据中的变量之类的内容包含要执行的正确操作。

于 2009-05-13T18:07:19.480 回答