我必须做以下事情:
将源实体合并到目标实体。源实体和目标实体都属于同一类型。因此,最终结果将是Source和Target将合并到一个Target实体,以便Target的所有属性保持不变,但如果Target中的任何属性不存在,它将从Source复制。
最后,源将被删除。
我的问题是,以宁静的方式应该在哪里落下 - POST / PUT / DELETE以及为什么?
或者,它将是多个操作 - PUT / POST后跟DELETE?
答案 0 :(得分:0)
你可以在一个电话中完成。假设目标的唯一ID在新实体中保持不变,只需允许:
POST /entities/{targetEntityId}
{
"mergeFrom": "/entities/{sourceEntityId}
}
POST允许副作用,因此您可以选择在此调用中执行删除操作。或者,您可以选择允许客户端通过要求他们在POST后调用DELETE /entities/{sourceEntityId}
来确定是否删除了源。
要使用PUT,您需要客户端进行合并并包含所有值,这可能是不合需要的。