如何解决当FluentValidation返回错误时,如何返回自定义响应?
我正在使用FluentValidation
来验证我的ASP.NET Core 3.1 Web API
的输入。我正在以“自动”方式进行操作。因此,在我的Startup
课堂上,我有这个:
services.AddControllers()
.AddFluentValidation(opt =>
{
opt.RegisterValidatorsFromAssemblyContaining(typeof(UserInputValidator));
});
这样,FluentValidation
神奇地验证了上述程序集的所有输入,而无需其他代码。很不错,但是...响应格式与返回BadRequest
时使用的响应格式不同。这是FluentValidation格式:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1","title": "One or more validation errors occurred.","status": 400,"traceId": "|3b037c98-40d28ab8553d6989.","errors": {
"UserId": [
"'User Id' must be greater than '0'."
],"Score": [
"'Score' must be between 0 and 500. You entered 900."
]
}
}
我宁愿拥有:
{
"code": 123456,"message": "One or more validation errors occurred.","errors": [
"'User Id' must be greater than '0'.","'Score' must be between 0 and 500. You entered 900."
]
}
所以我的问题是,是否可以覆盖它?
我有一个主意,但是不确定这是否是一个好习惯(甚至可能),但是如果FluentValidation
而不是返回其BadRequest response
会引发异常,我将能够捕获到它在中间件中并重新格式化。
无论如何,FluentValidation
非常受欢迎,.NET Core WebAPI
非常受欢迎。我很难相信“忍者开发者”只会使用第三方工具提供的响应,而响应格式与他们的响应格式不匹配。但是,我看不到如何解决它的许多材料(即使在FluentValidation
网站上也是如此。我错过了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。