如何使用 swashbuckle 在 post 请求 swagger 描述中隐藏 属性?
How to hide a property just in post request description of swagger using swashbuckle?
我是 ASP.NET Core 的新手,这个问题看起来很简单,但我在网上找不到合适的解决方案。那么问题来了。
这是我正在使用的 class 的结构。
public class Alert
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public string AlertId { get; set; }
public string Type { get; set; }
}
这是 Post 请求 API 的描述。
{
"alertId": "string",
"type": "string"
}
由于我在 post 请求中使用 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
注释 alertId
是可选的。
我的目标是仅从 post 请求描述中隐藏 alertId
。
我正在使用 ASP.NET Core 3.1、EF Core(3.1.1) 和 Swashbuckle.AspDotNetCore(5.1.0).
请帮助。
谢谢你。
可以在AlertId字段中添加[JsonIgnore]
属性,保证post请求不会获取到AlertId的内容。
public class Alert
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[JsonIgnore]
public string AlertId { get; set; }
public string Type { get; set; }
}
这是测试结果:
你可以使用Swashbuckle.AspNetCore.Annotations
包,它允许你标记一些属性只在输入参数中显示,一些属性只在输出中显示。
在你的例子中,你想在post的输入参数中隐藏AlertId
,你只需要通过[SwaggerSchema]
:
来完成
public class Alert
{
[SwaggerSchema(ReadOnly = true)]
public string AlertId { get; set; }
public string Type { get; set; }
}
中查看更多信息
在 Startup.cs
的 ConfigureServices
方法中,在 Swagger 配置块中启用注释:
services.AddSwaggerGen(c =>
{
...
c.EnableAnnotations();
});
我是 ASP.NET Core 的新手,这个问题看起来很简单,但我在网上找不到合适的解决方案。那么问题来了。
这是我正在使用的 class 的结构。
public class Alert
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public string AlertId { get; set; }
public string Type { get; set; }
}
这是 Post 请求 API 的描述。
{
"alertId": "string",
"type": "string"
}
由于我在 post 请求中使用 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
注释 alertId
是可选的。
我的目标是仅从 post 请求描述中隐藏 alertId
。
我正在使用 ASP.NET Core 3.1、EF Core(3.1.1) 和 Swashbuckle.AspDotNetCore(5.1.0).
请帮助。
谢谢你。
可以在AlertId字段中添加[JsonIgnore]
属性,保证post请求不会获取到AlertId的内容。
public class Alert
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[JsonIgnore]
public string AlertId { get; set; }
public string Type { get; set; }
}
这是测试结果:
你可以使用Swashbuckle.AspNetCore.Annotations
包,它允许你标记一些属性只在输入参数中显示,一些属性只在输出中显示。
在你的例子中,你想在post的输入参数中隐藏AlertId
,你只需要通过[SwaggerSchema]
:
public class Alert
{
[SwaggerSchema(ReadOnly = true)]
public string AlertId { get; set; }
public string Type { get; set; }
}
中查看更多信息
在 Startup.cs
的 ConfigureServices
方法中,在 Swagger 配置块中启用注释:
services.AddSwaggerGen(c =>
{
...
c.EnableAnnotations();
});