最近,我一直在尝试利用元数据页面来成为我们努力的一部分,以使我们的文档更具响应能力。我发现ApiMember似乎不能用于使用dotnet核心的项目。如何在使用dotnet核心时使ApiMember正常工作
这是我的DTO,更新,包括DTO定义
using ServiceStack;
[Api("Test request")]
[Route("/test/{Input}","GET")]
[Route("/test")]
public class TestRequest:IReturn<TestResponse>
{
[ApiMember(Name="Parameter name", Description = "Parameter Description",
ParameterType = "body", DataType = "string", IsRequired = true)]
public string Input { get; set; }
}
public class TestResponse
{
public string Output { get; set; }
}
//Validator
public class TestRequestValidator : AbstractValidator<TestRequest>
{
public TestRequestValidator()
{
RuleFor(r => r.Input).NotEmpty();
}
}
的全部内容,我期待的名称和说明应在元数据页面显示,事实并非如此。我该怎么办?
而且,如果我可能会问第2个问题,因为我有完整的dto,我必须要求验证器(使用fluentvalidation lib)确实有效,但是,如何将它连接到记录器?例如,当输入为空时,我希望记录器保存那条信息,我该怎么办?
更新: 我回到了我的代码,我发现,如果我改变我的DTO Testrequest它的工作原理。具体来说,下面的作品。
namespace web
{
[Api("Test request")]
[Route("/test/{Input}", "GET")]
[Route("/test")]
public class TestRequest : IReturn<TestResponse>
{
[ApiMember(Name = "Parameter name", Description = "Parameter Description",
ParameterType = "body", DataType = "string", IsRequired = true)]
public string Input { get; set; }
}
public class TestResponse
{
public string Output { get; set; }
}
}
这并不
[Api("Test request")]
[Route("/test/{Input}", "GET")]
[Route("/test")]
public class TestRequest : IReturn<TestResponse>
{
[ApiMember(Name = "Parameter name", Description = "Parameter Description",
ParameterType = "body", DataType = "string", IsRequired = true)]
public string Input { get; set; }
}
public class TestResponse
{
public string Output { get; set; }
}
请包括完整的类定义TestRequest未修改 – mythz
@mythz更新,现在它有完整的定义。我还问过关于如何将fluentvalidation结果导出到日志记录器的另一个问题 – shawhu
我刚刚创建了一个按预期工作的示例.NET Core项目,因此如果尚未完成,则需要升级到最新版本,如果仍有问题,请在GitHub上发布独立的可验证示例,我会检查一下。请打开新问题以询问无关的问题,但您可以使用'ValidationFeature.ErrorResponseFilter'钩子截取并自定义错误响应DTO。 – mythz