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:

  • 相关阅读:
    后端开发应该掌握的 Redis 基础
    Code Review有什么好处?
    对不起,你那不叫努力,叫重复劳动
    老鸟程序员才知道的40个小技巧
    单例模式基础笔记
    最受IT公司欢迎的50款开源软件
    硬件:关于路由器、交换机、宽带猫的几个问题
    硬件:宽带猫(光猫)的基础知识
    python selenium模块使用出错解决,Message: ‘geckodriver’ executable needs to be in PATH
    python+selenium如何定位页面的元素,的几种定位元素的方法。
  • 原文地址:https://www.cnblogs.com/94cool/p/9238610.html
Copyright © 2011-2022 走看看