.net 코어 WebAPI에서이 메소드를 사용하여 201 코드를 리턴합니다. 이는 오브젝트가 작성되었음을 의미합니다.
[Microsoft.AspNetCore.Mvc.NonAction]
public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute (string routeName, object routeValues, object content);
위에서 볼 수 있듯이 CreatedAtRoute는 3 개의 매개 변수를받을 수 있습니다.
routeName
생성 후 해당 리소스를 가져 오는 URI가 될 메서드에 입력해야하는 이름입니다.
routeValues
명명 된 경로에서 GET 메소드로 전달 될 값을 포함하는 객체입니다. 생성 된 객체를 반환하는 데 사용됩니다
content
만들어진 객체입니다.
위의 예제는 결합 된 이름을 가진 간단한 GET 메소드와 새 오브젝트를 작성하는 POST 메소드를 사용하여 간단한 제어기의 두 가지 메소드 구현을 보여줍니다.
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);
}
}
}
중대한
CreatedAtRoute (routeName)의 첫 번째 매개 변수는 Get 메서드의 Name 정의에서 동일해야합니다.
두 번째 매개 변수의 개체에는 Get 메서드에서 리소스를 검색하는 데 사용되는 필수 필드가 있어야합니다.이 필드는 자체 생성 된 개체의 하위 집합이라고 말할 수 있습니다.
마지막 매개 변수는 본문 요청에서 전체 양식으로받은 회사 오브젝트입니다.
마지막으로
최종적으로 새 회사를 작성하기위한 Post가이 API에 작성되면 'api / company / {id}'와 같은 라우트를 리턴하여 새로 작성된 자원으로 리턴합니다.