gpt4 book ai didi

c# - 如何使用 swashbuckle 在 swagger 的 post 请求描述中隐藏属性?

转载 作者:行者123 更新时间:2023-12-04 14:14:54 26 4
gpt4 key购买 nike

我是 ASP.NET Core 的新手,这个问题看起来很简单,但我在网上找不到合适的解决方案。所以问题来了。
这是我正在使用的类的结构。

public class Alert
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public string AlertId { get; set; }
public string Type { get; set; }

}

这是 swagger 中 Post 请求 API 的描述。
{
"alertId": "string",
"type": "string"
}

因为我正在使用 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]注释 alertId在 post 请求中是可选的。
我的目的是隐藏 alertId仅来自发布请求描述。
我正在使用 ASP.NET Core 3.1、EF Core(3.1.1) 和 Swashbuckle.AspDotNetCore(5.1.0)。
请帮忙。
谢谢你。

最佳答案

您可以使用 Swashbuckle.AspNetCore.Annotations包,它允许你标记一些属性只显示在输入参数中,有些只显示在输出中。
在您的情况下,您想隐藏 AlertId在帖子的输入参数中,你只需要通过[SwaggerSchema]来做到这一点:

public class Alert
{
[SwaggerSchema(ReadOnly = true)]
public string AlertId { get; set; }
public string Type { get; set; }
}
Documentation 中查看更多相关信息
ConfigureServices Startup.cs的方法, 在 Swagger 配置块中启用注释:
services.AddSwaggerGen(c =>
{
...

c.EnableAnnotations();
});

关于c# - 如何使用 swashbuckle 在 swagger 的 post 请求描述中隐藏属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61215921/

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