In .net Core WebAPI verwenden Sie diese Methode, um einen 201-Code zurückzugeben. Dies bedeutet, dass das Objekt erstellt wurde.
[Microsoft.AspNetCore.Mvc.NonAction]
public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute (string routeName, object routeValues, object content);
Wie Sie oben sehen können, kann die CreatedAtRoute 3 Parameter empfangen:
routeName
Ist der Name, den Sie für die Methode eingeben müssen, die der URI ist, der diese Ressource nach der Erstellung erhält.
routeValues Dies
ist das Objekt, das die Werte enthält, die an der benannten Route an die GET-Methode übergeben werden. Es wird verwendet, um das erstellte Objekt zurückzugeben
Inhalt
Es ist das Objekt, das erstellt wurde.
Das obige Beispiel zeigt die Implementierung von zwei Methoden eines einfachen Controllers mit einer einfachen GET-Methode mit dem verbundenen Namen und der POST-Methode, die ein neues Objekt erstellt.
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);
}
}
}
WICHTIG
Beachten Sie, dass der erste Parameter bei CreatedAtRoute (routeName) bei der Definition des Namens bei der Get-Methode identisch sein muss.
Das Objekt im zweiten Parameter muss über die erforderlichen Felder verfügen, die Sie zum Abrufen der Ressource in der Get-Methode verwenden. Sie können sagen, dass es sich um eine Teilmenge des selbst erstellten Objekts handelt
Der letzte Parameter ist das Firmenobjekt, das in der Textanforderung in seiner vollständigen Form empfangen wurde.
ENDLICH
Als letztes Ergebnis, wenn der Beitrag zum Erstellen einer neuen Firma für diese API erstellt wurde, geben Sie eine Route wie 'api / company / {id}' zurück, die Ihnen die neu erstellte Ressource zurückgibt