.Net çekirdek WebAPI'sinde, bu yöntemi bir 201 kodu döndürmek için kullanırsınız, bu, nesnenin oluşturulduğu anlamına gelir.
[Microsoft.AspNetCore.Mvc.NonAction]
public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute (string routeName, object routeValues, object content);
Yukarıda görebileceğiniz gibi, CreatedAtRoute 3 parametre alabilir:
routeName
, oluşturulduktan sonra o kaynağı alacak olan URI olacak yönteme koymanız gereken addır.
routeValues
Adlandırılmış rotada GET yöntemine iletilecek değerleri içeren nesnedir. Oluşturulan nesneyi döndürmek için kullanılacak
içerik
Yaratılan nesnedir.
Yukarıdaki örnek, bağlı adla basit bir GET yöntemiyle basit bir denetleyicinin iki yönteminin ve yeni bir nesne oluşturan POST yönteminin uygulanmasını gösterir.
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);
}
}
}
ÖNEMLİ
CreatedAtRoute'daki (routeName) ilk parametrenin Get yöntemindeki Ad tanımında aynı olması gerektiğine dikkat edin.
İkinci parametredeki nesnenin, kaynağı Get yönteminde almak için kullandığınız gerekli alanlara sahip olması gerekir, bunun kendi yarattığı nesnenin bir alt kümesi olduğunu söyleyebilirsiniz.
Son parametre, gövde talebinde tam formunda alınan şirket nesnesidir.
FINALY
Nihai sonuç olarak, bu API'ye yeni bir şirket oluşturmak için Gönderi yapıldığında, size yeni oluşturulan kaynağı döndürecek 'api / company / {id}' gibi bir rota döndüreceksiniz.