W .net core WebAPI ta metoda służy do zwracania kodu 201, co oznacza, że obiekt został utworzony.
[Microsoft.AspNetCore.Mvc.NonAction]
public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute (string routeName, object routeValues, object content);
Jak widać powyżej, CreatedAtRoute może otrzymać 3 parametry:
routeName
to nazwa, którą należy przypisać metodzie, która będzie identyfikatorem URI, który będzie pobierał ten zasób po utworzeniu.
routeValues
Jest to obiekt zawierający wartości, które zostaną przekazane do metody GET w nazwanej trasie. Zostanie użyty do zwrócenia utworzonego obiektu
zawartość
To obiekt, który został utworzony.
Powyższy przykład pokazuje implementację dwóch metod prostego kontrolera z prostą metodą GET o powiązanej nazwie oraz metodą POST, która tworzy nowy obiekt.
namespace BastterAPI.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class CompanyController : Controller
{
private ICompanyRepository _companyRepository;
public CompanyController(ICompanyRepository companyRepository)
{
_companyRepository = companyRepository;
}
[HttpGet("{id}", Name="GetCompany")]
public IActionResult GetById(int id)
{
Company company = _companyRepository.Find(id);
if (company == null)
{
return NotFound();
}
return new ObjectResult(company);
}
[HttpPost]
public IActionResult Create([FromBody] Company company)
{
if (company == null)
{
return BadRequest();
}
_companyRepository.Add(company);
return CreatedAtRoute("GetCompany", new Company { CompanyID = company.CompanyID }, company);
}
}
}
WAŻNY
Zwróć uwagę, że pierwszy parametr w CreatedAtRoute (routeName) musi być taki sam w definicji Name w metodzie Get.
Obiekt na drugim parametrze będzie musiał mieć niezbędne pola, których używasz do pobierania zasobu w metodzie Get, możesz powiedzieć, że jest to podzbiór obiektu utworzonego samodzielnie
Ostatnim parametrem jest obiekt firmy otrzymany w treści żądania w pełnej postaci.
WRESZCIE
W rezultacie, gdy post o utworzeniu nowej firmy zostanie przesłany do tego interfejsu API, zwrócisz trasę, taką jak „api / company / {id}”, która zwróci Ci nowo utworzony zasób