是否有人将FluentValidation与重新安装客户端结合使用?
作为我正在开发的系统的一部分,我调用了各种REST服务,我想使用FluentValidation以统一的方式验证类型化的响应。
很明显,我可以在每次调用重新装配客户端内联后手动验证,但我想知道是否有任何范围可以自动找到相关的验证器并调用它们。
我想我看到的是类似于Mediator中验证行为模式的东西。
我有几个想法:
1.用验证包装器装饰每个客户端接口
这需要使用一个支持装饰的IoC容器,这意味着我必须创建每个客户端接口的实现,然后验证改装后的响应。
2.将验证DelegatingHandler添加到管道
这可能最终不得不反序列化内容——执行验证——然后将响应返回到链中的下一个处理程序。在内容较小的情况下,这可能是可以的。。。
3.使用自定义验证JsonConverter
在这里,我将包装一个Json.Net转换器,并在反序列化中执行验证。
或者我错过了改装的一些功能,这会有帮助吗?或者我的建议看起来很疯狂吗?!
谢谢,
尼克。
我使用了中介和改装,我们使用了这种模式:
-
(在通用管道处理程序中(将命令/查询验证到处理程序
如果失败=>400,具有标准验证结果
-
呼叫处理程序。。。。。
在处理程序中进行http调用
来自api的响应返回。
如果重新装配apiResponse错误抛出400并出现验证错误==>
(在通用管道处理程序中(检查apiResponse。如果400看验证错误(这是我们自己的东西,所以我们可以处理它(并通过它们返回给具有400和标准验证结果的呼叫者
所有这些都将通过api层,只需最少(无(的开发输入,UI将以自己的方式显示结果。
如果你想使用一个";标准";错误响应可能如下所示:https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.problemdetails?view=aspnetcore-5.0用于我的最新项目!
工作起来很有魅力!