.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 @ 2023-01-11 16:50  燕钰达  阅读(44)  评论(0编辑  收藏  举报