是否有通过REST为POST,PUT,PATCH动词执行BATCH操作的最佳实践?通过REST服务批处理
我下面当前范例是,JSON有效载荷在所述主体中指定的所有3个操作
一个)POST返回创建的资源
B的位置)PUT/PATCH返回201,如果更新成功
对于批处理操作,我打算接受有效内容主体中的json对象的集合,但正试图确定要返回给客户端的内容。 在处理批处理时,操作可能会成功执行某些项目,但可能会失败。
考虑到这一点,我认为最好的做法是从有效负载中返回指示每个 项目的成功/失败状态的对象集合。
但是,这偏离了上面(a)和(b)中概述的范例。
相反,它是否有意义将代表批处理操作本身的ID的标识符返回给客户端?
然后客户端会发出一个后续的GET来获取它所请求的操作的结果。
这种方法听起来合理吗?如果是这样,如果操作没有完成,在后续GET上阻止客户端是否合理?或者总是返回最新状态,即客户端请求处理的每个项目的响应集合是否合理。
想法/想法/建议?
由于REST是一种体系结构风格,不一定有明确的“准则”,并且没有关于如何实现HTTP动作的操作的要求,所以显然这里没有正确或错误的答案。
我在寻找优雅,自然,直观的解决方案。
REST不是“指南”。这是一种建筑风格。 –
每个资源是否需要批处理操作,或者只有一个? –
你能更具体地了解你的任务吗? – inf3rno