Di .net core WebAPI, Anda menggunakan metode ini untuk mengembalikan kode 201, yang berarti bahwa objek itu dibuat.
[Microsoft.AspNetCore.Mvc.NonAction]
public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute (string routeName, object routeValues, object content);
Seperti yang Anda lihat di atas, CreatedAtRoute dapat menerima 3 parameter:
routeName
Adalah nama yang harus Anda masukkan pada metode yang akan menjadi URI yang akan mendapatkan sumber daya itu setelah dibuat.
routeValues
Ini adalah objek yang berisi nilai-nilai yang akan diteruskan ke metode GET pada rute bernama. Ini akan digunakan untuk mengembalikan objek yang dibuat
konten
Itu objek yang telah dibuat.
Contoh di atas menunjukkan implementasi dua metode pengontrol sederhana dengan metode GET sederhana dengan nama berikat dan metode POST yang membuat objek baru.
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);
}
}
}
PENTING
Perhatikan bahwa parameter pertama di CreatedAtRoute (routeName), harus sama dengan definisi Name at the Get method.
Objek pada parameter kedua harus memiliki bidang yang diperlukan yang Anda gunakan untuk mengambil sumber daya pada metode Get, Anda dapat mengatakan bahwa itu adalah subset dari objek yang dibuat sendiri.
Parameter terakhir adalah objek perusahaan yang diterima dalam permintaan tubuh dalam bentuk lengkapnya.
AKHIRNYA
Sebagai hasil akhir, ketika Post untuk membuat perusahaan baru dibuat ke API ini, Anda akan mengembalikan rute seperti 'api / company / {id}' yang akan mengembalikan kepada Anda sumber daya yang baru dibuat