如何在DataAnnotation属性的C#数据模型中处理swagger的默认数据

问题描述 投票:0回答:1

我有一个 C# 属性模型,其中有名字、姓氏和电子邮件等属性,但我需要验证,但是当我从 Swagger 提交空白请求时,请求中会出现默认数据,例如名字和姓氏中的字符串,以及电子邮件中的字符串是 [电子邮件受保护]

所以请指导我如何处理它,以便我可以测试我的 C# 验证。

请指导我如何处理?

c# validation swagger
1个回答
0
投票

根据我的理解,您想要设置默认的 json 值,以便在 swagger 中发布“空”模型时会触发无效响应。如果您有以下代码:

    public class User
    {
        public string FirstName { get; set; }
        public string LastName { get; set;}
        [EmailAddress]
        public string Email { get; set; }
    }
        [HttpPost]
        public void test(User user)
        {
        }

它将生成并提交默认值。
enter image description here

您可以通过以下配置更改

User
模式 swagger 默认值。安装包
Swashbuckle.AspNetCore.Filters
然后实现
User
模型示例提供者

    public class UserExample : IExamplesProvider<User>
    {
        public User GetExamples()
        {
            return new User
            {
                FirstName = null,
                LastName = null,
                Email = ""

            };
        }
    }

将以下配置添加到program.cs

builder.Services.AddSwaggerGen(c =>
{
    c.ExampleFilters();  
});
builder.Services.AddSwaggerExamplesFromAssemblies(Assembly.GetEntryAssembly());

然后将名称的默认值更改为 null,将电子邮件的默认值更改为“”,这样您在提交时会收到无效的响应。
enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.