相关疑难解决方法(0)

ServiceStack - 验证和数据库访问

我正在使用ServiceStack实现Api.我的解决方案的一个关键方面是积极的验证策略.

我使用ServiceStack的ValidationFeature,这意味着如果在应用程序容器中注册了IValidator <ReqDto>(或其后代:AbstractValidator <ReqDto>),则验证将在服务之前自动运行.

通过积极验证,我的意思是我检查所有可能的错误情况,以及验证器级别的逻辑验证.因此,我的服务逻辑非常简洁.

从实际的角度来看,服务验证的服务逻辑的这种独立性是非常好的,因为它提供了非常容易阅读和推理服务逻辑/实现的原因.但是,我开始认为FluentValidation的规则和规则集更适合简单的格式验证,而不是直接在我正在进行的数据库访问(主要是测试源自请求中提取的ID的404错误).

问题:

1:验证逻辑在概念上访问数据库是否不正确?

2:从我所看到的,到目前为止,包括SS源,我没有找到一个形式来定义的情况下,如FluentValidation规则:从请求拉一个ID,访问数据库中检索一个实体,并抛出一个404如果没有找到进入.我只使用FV规则来定义基本格式验证,例如:

RuleFor(x => x.UserName).NotEmpty();
RuleFor(x => x.Password).NotEmpty();
Run Code Online (Sandbox Code Playgroud)

其余的我手动做.有解决这个问题的人吗?

注意:这不是关于如何将ValidationResult/ValidationError转换为HttpResult/HttpError的问题.通过使用SS 3.9.44中引入的ValidationFeature的ErrorResponseFilter,我已经介绍过了.谢谢

c# validation fluentvalidation servicestack

3
推荐指数
1
解决办法
900
查看次数

标签 统计

c# ×1

fluentvalidation ×1

servicestack ×1

validation ×1