比方说,我正在跟踪食谱,配料和作者。我有一个表格,用户可以填写该表格来创建食谱,添加和/或链接适当的成分,然后添加和/或链接作者。因此,如果我要单独执行此操作,则可能需要1 POST到/ recipes以创建返回ID的配方。然后将1个或多个POST发送到/成分以创建必要的成分。然后将1个或多个POSTS添加到/ recipe // reduce来添加每种成分到配方中。然后为作者重复。但是,如果这些请求中的任何一个失败,该怎么办?我能否将其作为对/ recipes的1个POST请求来实现,并使其执行所有必要的插入操作?
答案 0 :(得分:0)
我可以将其作为对/ recipes的1个POST请求来实现,并使其执行所有必要的插入操作吗?
是的,绝对。
没有什么可以说对一种资源的更改也不能对其他资源产生副作用。
HTTP是一种应用协议,其应用域是通过网络传输文档(Webber, 2011); Web服务器从根本上说是一个http兼容的文档存储。因此,将整个文档发送到服务器进行存储与消息的语义是一致的。
如果您回顾POST规范中描述的创建语义,您会发现该协议支持创建多个 resource ;服务器应该返回所有已创建资源的标识符(可能以某种未指定的方式受媒体类型的约束)。