zoukankan      html  css  js  c++  java
  • swagger使用随笔

    2020-10-21 在一技术群里看到有个大佬想用 swagger 实现个功能:基础 Api 项目中写好通用的接口,配置好 swagger .上级项目直接引用项目,就能访问 swagger 起来用。相当于不用重新配置 swagger 和重写部分接口。

    然后我就开始捣鼓,折腾了。

    直接VS 创建 2个 .net 4.5 的 api 项目。

    在基础项目 nuget 装上 Swashbuckle 。

     然后想到了之前做项目的时候,项目引用时路由冲突的常见问题,就直接把基础项目里的 HomeController 给去掉了,相当于纯基础 API 项目,也是为了防止默认的 /Home/Index 路由规则冲突,留着只是祸害就直接干掉了。

    接下来就是改一下 TestBaseApi 的 App_Start 里的 SwaggerConfig.cs 文件。

    注释自行看着办,我是全清了。留太多眼花,已经看过好几次了。

    直接给内部的 Register 方法加点东西。

    public static void Register()
            {
                var thisAssembly = typeof(SwaggerConfig).Assembly;
    
    
                GlobalConfiguration.Configuration
                    .EnableSwagger(c =>
                        {
                            c.SingleApiVersion("v1", "BaseApiSwagger");
    
                            var files = System.IO.Directory.GetFiles(string.Format(@"{0}in\", System.AppDomain.CurrentDomain.BaseDirectory), "*.xml");
                            foreach (var item in files)
                            {
                                var tempFile = System.IO.File.OpenRead(item);
                                if (tempFile.Name.Count(d => d == '.') == 1)
                                {
                                    c.IncludeXmlComments(item);
                                }
                            }
                        })
                    .EnableSwaggerUi(c =>
                        {
                        });
            }

    直接粗暴找到 项目名.xml 去读取 API 控制器的 XML 文件,这儿只做实现,不做优化.

    接下来 把 TestBaseApi 引用到 TestExtApi 里。

    为了方便看效果,把 TestExtApi 里默认的 ValueController 改为了 Value1Controller .

    编译,F5跑起来看效果。

    嗯,看起来问题不大,事实证明是可行的。这样就简单结束 了。

    后续:

    其实我想过好几个问题:

    1。新项目,想自定义 swagger 名称怎么办?

    2。新项目,需要自定义 js 怎么办?像普通的 swagger 写个内嵌的 js ,它能正常识别到么?

    3。新项目,想配置部分 swagger 参数的时候又应该怎么办?

    这几个问题,我得好好试试才知道答案。

  • 相关阅读:
    Scrum为什么不喜欢“来自客户的频繁变更”?
    [转]SQL Server计算列
    宽容,是创新的土壤
    【转载】《2010年年度总结》
    远程维护需要“千里眼”
    TOP语句放到表值函数外,效率异常低下
    “设计应对变化”实例讲解一个数据同步系统
    “批量少次”还是“少量多次”邮件通信系统效率浅谈
    NYOJ117 求逆序数
    NYOJ92 图像有用区域
  • 原文地址:https://www.cnblogs.com/Frank-Jan/p/13853193.html
Copyright © 2011-2022 走看看