【问题标题】:How to execute servicestack request validation code only如何仅执行 servicestack 请求验证代码
【发布时间】:2016-07-14 12:22:47
【问题描述】:

我想知道有没有办法向 servicestack 标记您只想为请求执行流利的验证过滤器,而不是继续运行真正的代码?

理想情况下,您可以为任何请求添加属性,例如

`ExecuteValidationOnly = true`

这对于测试和验证表单客户端非常有用。

谢谢。

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    ServiceStack 中没有内置这样的功能,但您可以轻松添加基于 QueryString 的请求过滤器,例如:

    public class SkipRequestFeature : IPlugin
    {
        public void Register(IAppHost appHost)
        {
            appHost.GlobalRequestFilters.Add((req, res, dto) => {
                if (req.QueryString["SkipRequest"] == "true")
                    res.EndRequestWithNoContent();
            });
        }
    }
    

    并在 ValidationFeature 之后注册插件,以便在验证后执行,例如:

    Plugins.Add(new ValidationFeature());
    Plugins.Add(new SkipRequestFeature());
    

    【讨论】:

      【解决方案2】:

      对于这种情况,我通常对我的实际 AbstractValidator<T> 类进行单元测试,然后当我需要测试服务时,我会在验证器上创建一个模拟并设置验证调用。

      所以有一个MyValidatorTests 类和一个MyServiceTests 类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-12
        • 2023-03-20
        相关资源
        最近更新 更多