c# 調試模式下Swaggerf附加接口參數


c# 調試模式下Swaggerf附加接口參數,如:每個接口Header中附加參數appId

 

1、新增過濾器:

 

public class GlobalHttpHeaderFilter : IOperationFilter
    {        
        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            if (operation.parameters == null)
                operation.parameters = new List<Parameter>();            
            operation.parameters.Add(new Parameter { name = "appId", @in = "header", description = "應用ID", required = true, type = "string" });
        }
    }

2、WebAPIConfig 配置Swagger過濾器:

            if ( System.Diagnostics.Debugger.IsAttached) //調試模式
            {
                _config.EnableSwagger(c =>
                {
                    c.SingleApiVersion("v1", $"{name}的API文檔");
                    c.IncludeXmlComments($@"{AppDomain.CurrentDomain.BaseDirectory}\{name}.XML");
                    c.OperationFilter< GlobalHttpHeaderFilter>();
                }).EnableSwaggerUi();
            }

 3、控制器:

public class DemoAPIController : ApiController
{
        Logger log;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="log"></param>
        public DemoAPIController(Logger log)
        {
            this.log = log;
        }
        /// <summary>
        /// 獲取數據
        /// </summary>
        /// <returns>數據</returns>
        public string Get()
        {
    IEnumerable<string> values = null;

 

            if (controller.Request.Headers != null && controller.Request.Headers.TryGetValues(name, out values) && values != null && values.Count() > 0)
            {
                var appId =  values.FirstOrDefault();
            }
            return "demo";
        }

 

4、Swagger:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM