Asp.net 핵심 프로젝트에서 웹 UI 및 웹 API 컨트롤러가 모두 있습니다. 나는 https://www.devtrends.co.uk/blog/handling-errors-in-asp.net-core-web-api 기사를 다음과 startup.cs에 포함 된 ErrorController에서 작업을 처리오류 처리 동작에서 웹보기 또는 API 응답을 반환해야하는지 결정하는 방법
app.UseStatusCodePagesWithReExecute("/Error/error/{0}");
app.UseExceptionHandler("/Error/error/500");
그리고 추가 오류 :
[Route("error/{code}")]
public IActionResult Error(int code)
{
return new ObjectResult(new ApiResponse(code));
}
이 아니라 웹 페이지, 웹 API에 좋습니다. api의 경우 사용자 정의 객체 (JSON으로 직렬화)를 반환하지만 UI의 경우 사용자 정의보기를 반환하려고합니다. 나는
public IActionResult Error(int code)
{
if(CalledFromApiClient())
{
return new ObjectResult(new ApiResponse(code));
}
else
return View(“Error”);
}
질문 방법 CalledFromApiClient을 구현하는 것입니다 뭔가를 쓰고 싶어?
API 하위 폴더/네임 스페이스에있는 모든 API 컨트롤러를 유지하고 호출 스택을 사용하여 API 컨트롤러에서 예외가 발생했는지 여부를 확인하려고합니다. 작동해야하지만 좋지 않습니다.
더 좋은 방법이 있습니까?
확인 헤더 (콘텐츠 협상)을 허용하는 규칙을 따르는 것으로 가정합니다. HTML을 묻는다면 – Nkosi