我有一个客户端界面,允许用户对树状轮廓执行多次编辑。我认为构成该大纲的记录总数是一个单一资源(/大纲/ 39),即使其部分可以通过不同的URL作为单独的资源进行访问。
问题是用户可以编辑轮廓中的现有节点以及向轮廓添加新节点。通常情况下,当您编辑某些内容时,请将其更改,当您添加新内容时,请将其发布;但是,在某些情况下,您需要在单个事务中包装所有更改(包括添加和编辑)。人们处理这个问题的实际方法是什么?
即使轮廓已经存在并且PUT看起来合适,嵌入式加法也违反了PUT的幂等性。我不确定POST是否合适。出于设计目的,我决定不保存用户所做的每个离散更新,但我想这提供了一个解决方案。但是,必须有其他人处理我的问题或对此有所了解。
答案 0 :(得分:1)
有什么方法可以使添加幂等?例如。如果节点有自然键,那么当客户端第二次尝试添加节点时,你什么也不做。
答案 1 :(得分:0)
如何:制作新资源:/ outlines / 39 / transactions,并将您的交易发布到该资源,例如
POST“addNode = node1,addNode = node2,editNode = node3,newName = foobar”to / outlines / 39 / transactions