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:

最新文章

  1. ios framework 简单制作
  2. webpack配置备份
  3. hibernate防止sql注入对参数赋值传参数的例子
  4. 基于netty的微服务架构
  5. 你值得拥有:25个Linux性能监控工具
  6. 各新旧版本Java及其相关文档可以从这里下载
  7. 解决JSP 不解析EL表达式
  8. 如何混合使用ARC和非ARC
  9. Linux自动备份MySQL数据库脚本代码
  10. notify()、notifyAll()和wait()
  11. mysql 中翻页
  12. 针对Oracle的审计方案
  13. LinkedHashMap概述
  14. 修改MYSQL的默认连接时长
  15. Python实现爬取需要登录的网站完整示例
  16. NOI-OJ 1.13 ID:5 素数回文数的个数
  17. loadrunner&#160;运行场景-运行时设置
  18. 【原创】CA证书申请+IIS配置HTTPS+默认访问https路径
  19. mysql grep database error(cannot rmdir /dbname)
  20. java.lang.UnsupportedClassVersionError: com/my/test/TestUser : Unsupported major.minor version 52.0

热门文章

  1. CORS跨域-Nginx使用方法(Access-Control-Allow-Origin错误提示)
  2. invariant theory 不变量理论
  3. 存储空间消耗磁盘比较 int varchar date
  4. Laravel 5.2 INSTALL- node&#39;s npm and ruby&#39;s bundler.
  5. 关于学习oi的一些事项
  6. kafka可视化工具kafka tools
  7. BZOJ4391 High Card Low Card [Usaco2015 dec](贪心+线段树/set库
  8. pyinstaller-打包python程序为exe文件
  9. qemu-kvm内存虚拟化1
  10. 【Linux】阿里云服务器部署--禅道