ASP.NET Boilerplate を使用して API を構築していますが、エラー処理と HTTP ステータス コードの戻りを抽象化しています。私はドキュメントに目を通しましたが、UserFriendlyException と AbpValidationException についてのみ言及しています。
ASP.NET Boilerplate でスローできるその他の利用可能な例外と、それが返す対応する HTTP 応答コードは何ですか?
ASP.NET Boilerplate を使用して API を構築していますが、エラー処理と HTTP ステータス コードの戻りを抽象化しています。私はドキュメントに目を通しましたが、UserFriendlyException と AbpValidationException についてのみ言及しています。
ASP.NET Boilerplate でスローできるその他の利用可能な例外と、それが返す対応する HTTP 応答コードは何ですか?
以下は、 GetStatusCode() メソッドによる例外と対応するステータス コードです。
- Abp.AbpException - 500
- Abp.AbpInitializationException - 500
- Abp.Authorization.AbpAuthorizationException - 403 または 401 の可能性があります
- Abp.BackgroundJobs.BackgroundJobException - 500
- Abp.Domain.Entities.EntityNotFoundException - 404
- Abp.Domain.Uow.AbpDbConcurrencyException - 500
- Abp.Runtime.Validation.AbpValidationException - 400
- Abp.UI.UserFriendlyException - 500
- Abp.WebApi.Client.AbpRemoteCallException - 500
protected virtual HttpStatusCode GetStatusCode(HttpActionExecutedContext context)
{
if (context.Exception is Abp.Authorization.AbpAuthorizationException)
{
return AbpSession.UserId.HasValue
? HttpStatusCode.Forbidden
: HttpStatusCode.Unauthorized;
}
if (context.Exception is AbpValidationException)
{
return HttpStatusCode.BadRequest;
}
if (context.Exception is EntityNotFoundException)
{
return HttpStatusCode.NotFound;
}
return HttpStatusCode.InternalServerError;
}