RESFTful Web API 是否应该在更新操作 (Put) 上返回修改后的实体?

Sup*_*JMN 6 rest asp.net-web-api

我正在创建一个新的 Web API,但我对更新操作(这是基本的 CRUD)有疑问。我应该返回包含更新的实体数据的 DTO 吗?我希望我的 API 是 RESTful 的。

Win*_*Win 1

我们通常在更新成功后返回NoContentResult 。例如,

[HttpPut("{id}", Name = "UpdateUser")]
public IActionResult UpdateUser(Guid id, [FromBody] UserUpdateDto user)
{
    if (user == null)
    {
        return BadRequest();
    }

    if (!_repository.UserExists(id))
    {
        return NotFound();
    }

    var entity = _repository.GetUser(id);
    Mapper.Map(user, entity);

    _repository.UpdateUser(entity);

    return NoContent();
}
Run Code Online (Sandbox Code Playgroud)

NoContent基本上返回状态代码204。以下是NoContentResult的源代码。

public class NoContentResult : StatusCodeResult
{
public NoContentResult()
    : base(204)
{
}
}
Run Code Online (Sandbox Code Playgroud)