首页 > 编程语言 >C# .net core(.net 6) swagger 隐藏Versioning(版本)输入框

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

时间:2023-01-11 17:02:03浏览次数:54  
标签:core C# 输入框 version 版本 net swagger

问题描述:在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>();

 

标签:core,C#,输入框,version,版本,net,swagger
From: https://www.cnblogs.com/yyd-sun/p/17044267.html

相关文章