zoukankan      html  css  js  c++  java
  • 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:

  • 相关阅读:
    SQL Server 深入解析索引存储(非聚集索引)
    class.forName的官方使用方法说明
    使用C++实现学生管理系统
    hdu5033 Building 单调队列
    leetCode 72.Edit Distance (编辑距离) 解题思路和方法
    IOS7 textkit 的相关
    nodejs即时聊天
    5种语言混合编程:C++、JS、python、Lisp、汇编
    java Semaphore信号亮-同意多个任务同一时候訪问这个资源--thinking in java21.7.6
    关于Android的.so文件所须要知道的
  • 原文地址:https://www.cnblogs.com/94cool/p/9238610.html
Copyright © 2011-2022 走看看