将无标题项目添加到集合的RESTful方法是什么?

问题描述

| 假设我想编写一个界面,公开用户已阅读的书集。由于我希望URI对人类可读,因此它们的格式应为“ 0”。将书籍添加到集合中似乎是一项PUT操作,因为它1)创建了新资源,并且2)是幂等的,因为集合中不能有重复的元素。但是,PUT方法要求客户端知道要创建的资源的URI,在这种情况下,必须在服务器上计算该URI,因为可能有多个书具有相同的标题,分别表示为“ 0”和“ 2”。当然,一种有问题的解决方案是使用POST,它可以创建新资源,但不能保证是幂等的。 我的解决方案如下: 客户端将PUT设置为
/book-hashes/<hash>
,其中
<hash>
是书本对象的哈希。 服务器在该URI和
/books/<title>
处创建对该对象的引用。 服务器发出303 See Other状态代码,指向ѭ6status。 客户端获得
/book-hashes/<hash>
。 服务器以301永久移动作为响应,指向
/books/<title>
。 客户端获取
/books/<title>
并将其存储为书籍资源的新URI。 服务器删除“ 3”。 这是合法的REST解决方案吗?有谁以不同的方式解决了这个问题?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)