在ASP.NET Core WebApi中,可以使用CreatedAtAction
方法来返回201状态码和创建的资源。
下面是一个示例代码:
[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{
private readonly IUserRepository _userRepository;
public UsersController(IUserRepository userRepository)
{
_userRepository = userRepository;
}
[HttpPost]
public ActionResult CreateUser(User user)
{
var createdUser = _userRepository.Create(user);
return CreatedAtAction(nameof(GetUser), new { id = createdUser.Id }, createdUser);
}
[HttpGet("{id}")]
public ActionResult GetUser(int id)
{
var user = _userRepository.GetById(id);
if (user == null)
{
return NotFound();
}
return Ok(user);
}
}
在上面的代码中,CreateUser
方法使用CreatedAtAction
来返回201状态码和创建的用户对象。CreatedAtAction
方法的第一个参数是要调用的动作方法的名称,第二个参数是动作方法的参数,第三个参数是要返回的对象。
当调用CreateUser
方法时,将创建新的用户并将其添加到用户仓储中。然后,将使用CreatedAtAction
方法返回201状态码和创建的用户对象,并指定调用GetUser
方法来获取创建的用户。GetUser
方法将根据用户的ID返回用户对象。
注意:上面的代码示例是一个简化版本,假设已经通过构造函数注入了一个IUserRepository
接口的实例。实际的实现可能会有所不同。