Dans .net core WebAPI, vous utilisez cette méthode pour renvoyer un code 201, ce qui signifie que l'objet a été créé.
[Microsoft.AspNetCore.Mvc.NonAction]
public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute (string routeName, object routeValues, object content);
Comme vous pouvez le voir ci-dessus, le CreatedAtRoute peut recevoir 3 paramètres:
routeName
Est le nom que vous devez mettre sur la méthode qui sera l'URI qui obtiendra cette ressource après sa création.
routeValues
C'est l'objet contenant les valeurs qui seront passées à la méthode GET sur la route nommée. Il sera utilisé pour renvoyer l'objet créé
content
C'est l'objet qui a été créé.
L'exemple ci-dessus montre l'implémentation de deux méthodes d'un contrôleur simple avec une méthode GET simple avec le nom lié et la méthode POST qui crée un nouvel objet.
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);
}
}
}
IMPORTANT
Notez que le premier paramètre de CreatedAtRoute (routeName) doit être identique à la définition du Name dans la méthode Get.
L'objet sur le deuxième paramètre devra avoir les champs nécessaires que vous utilisez pour récupérer la ressource sur la méthode Get, vous pouvez dire que c'est un sous-ensemble de l'objet créé lui-même
Le dernier paramètre est l'objet société reçu dans la demande de corps dans sa forme complète.
FINALY
En tant que résultat final, lorsque la publication pour créer une nouvelle entreprise est envoyée à cette API, vous retournerez une route comme 'api / company / {id}' qui vous renverra la ressource nouvellement créée