.net core(.net 6) swagger 隐藏Versioning(版本)输入框

问题描述:在webapi添加version版本支持后在Swagger页面会自动添加一个版本输入框。

 

 

 解决方法:

 

前提:1、隐藏输入框,实现版本支持需要在路由中使用版本{version:apiVersion} 

版本支持参考:C# .net core(.net 6) WebApi 版本控制(Versioning) 并配置Swagger

 

 

前提: 2、将路由中版本{version}转换对应版本

 ---》

参考:C# .net core(.net 6) swagger 路由中版本{version}转换对应版本

3、实现

1)、创建工具类RemoveVersionParameter实现IOperationFilter接口,实现Apply方法在方法内移除Paramters中名字为version的控件。

复制代码
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;

namespace Demo02.Utility.Swagger
{
    /// <summary>
    /// 删除swagger页面的API版本输入框
    /// </summary>
    public class RemoveVersionParameter : IOperationFilter
    {
        /// <summary>
        /// 扩展
        /// </summary>
        /// <param name="operation"></param>
        /// <param name="context"></param>
        public void Apply(OpenApiOperation operation, OperationFilterContext context)
        {
            var versionParameter = operation.Parameters.FirstOrDefault(p => p.Name == "version");
            if(versionParameter != null)
            {
                operation.Parameters.Remove(versionParameter);
            }
        }
    }
}
复制代码

2、在swagger注册‘builder.Services.AddSwaggerGen’内添加RemoveVersionParameter。

 c.OperationFilter<RemoveVersionParameter>();

 

posted @   燕钰达  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示