我有一个后端 .NET Core Web API 应用程序和前端的 React App。我希望能够从 API 返回错误并将其显示在应用程序中。我面临的问题是某些类以不同的方式返回错误。例如,我使用
System.ComponentModel.DataAnnotations
来验证表单字段。
using System.ComponentModel.DataAnnotations;
namespace SportAdvisorAPI.Models
{
public class RegisterUserDto
{
[Required]
public required string Name { get; set; }
[Required]
[EmailAddress]
public required string Email { get; set; }
[Required]
public required string Password { get; set; }
[Required]
public required string ConfirmPassword { get; set; }
}
}
因此,如果表单验证失败,我得到的 API 响应将如下所示:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-3d6fda7d7ab4e861795de4091bae0e40-859fd543f9959150-00",
"errors": {
"Name": [
"The Name field is required."
],
"Email": [
"The Email field is required.",
"The Email field is not a valid e-mail address."
]
}
}
我还使用
UserManager
类进行用户注册,如果失败,返回的 API 响应如下所示:
{
"succeeded": false,
"errors": [
{
"code": "PasswordTooShort",
"description": "Passwords must be at least 6 characters."
},
{
"code": "PasswordRequiresNonAlphanumeric",
"description": "Passwords must have at least one non alphanumeric character."
},
{
"code": "PasswordRequiresLower",
"description": "Passwords must have at least one lowercase ('a'-'z')."
},
{
"code": "PasswordRequiresUpper",
"description": "Passwords must have at least one uppercase ('A'-'Z')."
}
]
}
因此,如果我想在我的 React 应用程序中显示这些错误消息,我需要编写一个额外的逻辑来检查
errors
对象的外观并将其重新映射到可用的东西。理想情况下,我想要一个简单的字符串数组,无论我会遇到什么错误,都可以更简单地在应用程序中显示它。
我在 .NET API 端有一种方法可以全局配置这些错误响应的样子?也许有一种我不知道的更好的方法?
到目前为止,我尝试返回错误,并在尝试更改任何配置之前检查它们的外观
我已经在我的 YouTube 视频中解释了如何在全局范围内处理有关使用 React 和 .NET 8 Web API 创建 CRUD 的错误,您可以看看它是否适合您。实现的方法是配置一个机制来捕获所有错误,将它们处理为一定的格式,然后返回给调用者: