HTTP Put - 在 URI 或正文中传递值?

HTTP Put - Pass value in URI or body?

如果我想传递两个原始类型,intbool,我应该像这样在 URI 中传递它们吗:

[ResponseType(typeof(WriteResponse))]
[Route("Account/{clientId:int}/Client/DisableClient/{shouldDisable:bool}")]
[ResultFilter]
public IHttpActionResult PutDisableClient([FromUri]int clientId, [FromUri] bool shouldDisable)

或者我应该从正文中传递 1,从 URI 中传递 1:

[ResponseType(typeof(WriteResponse))]
[Route("Account/{clientId:int}/Client/DisableClient")]
[ResultFilter]
public IHttpActionResult PutDisableClient([FromUri]int clientId, [FromBody] bool shouldDisable)

还是两者都在正文中?

每种情况的pros/cons是什么?

如果是 "put",那么最佳做法是在正文中传递值。

在 URI 中,您只传递过滤器值。这背后的原因是抓取您网站的机器人只会过滤数据而不会仅通过抓取来修改条目。