问题描述
|
假设我想编写一个界面,公开用户已阅读的书集。由于我希望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 (将#修改为@)