Nov*_*545 6 swagger swagger-ui swashbuckle
以此为例:
[Obsolete("Please use /Auth/Register instead")]
Run Code Online (Sandbox Code Playgroud)
Swaggers UI 显示其 Obsolte 但不显示消息,那么是否可以在 Swagger UI 中显示属性内的消息?(无需像这篇文章所说的那样更改库)我使用 Swashbuckle.AspNetCore(默认为 ASP.NET)v6.3(OpenAPI / Swagger v2.0、v3.0)
小智 1
这可以在 Swashbuckle 中使用操作过滤器来完成:
internal class ObsoleteOperationFilter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
operation.Description = operation.Deprecated ? context.MethodInfo.GetCustomAttribute<ObsoleteAttribute>()?.Message : operation.Description;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在 SwaggerGen 配置中添加过滤器:
builder.Services.AddSwaggerGen(options =>
{
options.OperationFilter<ObsoleteOperationFilter>();
...
});
Run Code Online (Sandbox Code Playgroud)
现在,操作的描述将替换为来自“过时”属性的消息。
归档时间: |
|
查看次数: |
690 次 |
最近记录: |