gpt4 book ai didi

c# - 如何在 Swashbuckle 中显示我的模型中使用的自定义注释?

转载 作者:行者123 更新时间:2023-12-02 16:48:18 26 4
gpt4 key购买 nike

我们在代码中使用 JetBrains 注释来定义对象模型的可空性行为。默认情况下,我无法在使用 Swashbuckle.AspNetCore v5.0.0-rc5 实现的 Swagger UI 中看到这些所以我假设默认情况下不支持这些。有什么办法可以添加这个功能吗?

仅供引用,我使用的是 ASP.NET Core WebApi 3.1。

例如:

public class Person {
[NotNull]
public Id PersonId{get; set;}

[CanBeNull]
public Address Address {get;set;}


}

最佳答案

创建一个自定义架构过滤器(用您的逻辑扩展它):

public class AssignPropertyRequiredFilter : ISchemaFilter
{
public void Apply(Schema schema, SchemaFilterContext context)
{
var requiredProperties = context.SystemType.GetProperties()
.Where(x => x.IsDefined(typeof(NotNullAttribute)))
.Select(t => char.ToLowerInvariant(t.Name[0]) + t.Name.Substring(1));

if (schema.Required == null)
{
schema.Required = new List<string>();
}
schema.Required = schema.Required.Union(requiredProperties).ToList();
}
}

然后注册

services.AddSwaggerGen(cfg => cfg.SchemaFilter<AssignPropertyRequiredFilter>());

关于c# - 如何在 Swashbuckle 中显示我的模型中使用的自定义注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59665931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com