如果我需要更新许多详细行,我的Web API控制器方法可能是这样的,使用RPC风格:
[Route("api/updateAccountDetailStatus")]
[HttpGet]
public IHttpActionResult UpdateAccountDetailStatus(int accountId, string status)
这将会将与该账户相关的所有详细行更改为新状态。
在尝试采用RESTful方法时,我的猜测是应该是这样的:
PATCH /accounts/110
{
"status": "hold"
}
[Route("api/accounts/id")]
[HttpGet]
public IHttpActionResult Account(Account account)
我不喜欢的是API控制器现在需要询问对象如何处理它。在这种情况下,它将更改所有详细行以达到新的状态。但是如果有人调用该补丁并发送一个不同的属性来修改呢?那我现在必须根据情况改变行为吗?是否有更好的方法?