我正在尝试将资源从/buckets/1
移到/buckets/2
,这样:
初始状态
最终状态
要求服务器以这种方式移动资源的RESTful方法是什么?
最佳答案
回答我自己的问题:
/balls
GET /buckets/1
而不是返回存储桶中的球的值相比,让ojit_code代替它返回球的URI。 然后,我们可以按以下方式移动球:
(examine original state)
GET /buckets/1: "balls = {'/balls/1'}"
GET /buckets/2: "balls = {}"
GET /balls/1: "bucket = /buckets/1"
(move ball into bucket #2)
PUT /balls/1: "bucket = /buckets/2"
(examine new state)
GET /buckets/1: "balls = {}"
GET /buckets/2: "balls = {'/balls/1'}"
GET /balls/1: "bucket = /buckets/2"
最终结果:球在桶中移动时,球的身份保持一致,并且(最重要的是)此操作是原子性的。