合并两个实体的地方是宁静的

时间:2015-08-11 19:41:27

标签: asp.net asp.net-web-api2 restful-architecture

我必须做以下事情:

将源实体合并到目标实体。源实体和目标实体都属于同一类型。因此,最终结果将是Source和Target将合并到一个Target实体,以便Target的所有属性保持不变,但如果Target中的任何属性不存在,它将从Source复制。

最后,源将被删除。

我的问题是,以宁静的方式应该在哪里落下 - POST / PUT / DELETE以及为什么?

或者,它将是多个操作 - PUT / POST后跟DELETE?

1 个答案:

答案 0 :(得分:0)

你可以在一个电话中完成。假设目标的唯一ID在新实体中保持不变,只需允许:

POST /entities/{targetEntityId}
{
    "mergeFrom": "/entities/{sourceEntityId}
}

POST允许副作用,因此您可以选择在此调用中执行删除操作。或者,您可以选择允许客户端通过要求他们在POST后调用DELETE /entities/{sourceEntityId}来确定是否删除了源。

要使用PUT,您需要客户端进行合并并包含所有值,这可能是不合需要的。