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}\bin\\", 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 参数的时候又应该怎么办?
这几个问题,我得好好试试才知道答案。
swagger使用随笔的更多相关文章
- ASP.NET WebApi 文档Swagger深度优化
本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明博客园蜗牛原文地址,cnblogs.com/tdws 写在前面 请原谅我这个标题党,写到了第100篇随笔,说是深度优化,其实也并没有什么深度 ...
- .Net Webapi Swagger增加登录功能
.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...
- Katana的WebAPI集成Swagger 解决方案
这位大哥写的博客很清楚了,我就不重复了. http://www.cnblogs.com/caodaiming/p/4156476.html 错误解决 http://blog.csdn.net/gold ...
- ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介
参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...
- ABP框架 - Swagger UI 集成
文档目录 本节内容: 简介 Asp.net Core 安装 安装Nuget包 配置 测试 Asp.net 5.x 安装 安装Nuget包 配置 测试 简介 来自它的网页:“...使用一个Swagger ...
- AI人工智能系列随笔
初探 AI人工智能系列随笔:syntaxnet 初探(1)
- 【置顶】CoreCLR系列随笔
CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...
- C++随笔:.NET CoreCLR之GC探索(4)
今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...
- C++随笔:从Hello World 探秘CoreCLR的内部(1)
紧接着上次的问题,上次的问题其实很简单,就是HelloWorld.exe运行失败,而本文的目的,就是成功调试HelloWorld这个控制台应用程序. 通过我的寻找,其实是一个名为TryRun的文件出了 ...
随机推荐
- 《图解HTTP》学习笔记之入门
学习HTTP之前,很必要了解一下关于Web网络基础. TCP/IP协议族 1.应用层:应用层决定了向用户提供应用 服务时的通信活动,比如FTP(文件传输协议).DNS(域名系统).HTTP(超文本传输 ...
- SpringMVC-12-SSM回顾与总结
12.SSM回顾与总结
- 北京数途科技有限公司--EAM MAXIMO介绍
一.EAM概述: EAM( Enterprise Asset Management)即企业资产维护管理系统 ,它是面向资产密集型(Asset-intensive)企业的企业信息化 解决方案的总称,其前 ...
- spring framework源码之SpringFactoriesLoader
SpringFactoriesLoader 查询META-INF/spring.factories的properties配置中指定class对应的所有实现类. public abstract clas ...
- 关于TCP建立连接
TCP大家大多称之为"三次握手".今天看了一篇文章,学到了"三步握手". TCP建立连接,客户端发送SYN给服务端,服务端接收到请求回应ACK.服务端发送SYN ...
- burp suite之Target(目标)
Target : 将攻击的目标,全部展现到Target下. Site map:站点地图 Scope: 范围 目录爬行: 复制所有子目录的链接 Spidor this host: 发送至Spidor选项 ...
- element弹框的的this.$alert、this.$prompt方法用法
调用$alert方法即可打开消息提示,它模拟了系统的 alert,无法通过按下 ESC 或点击框外关闭 调用$prompt方法即可打开消息提示,它模拟了系统的 prompt
- SolrJ使用
1 //向solr索引库中添加索引 2 public void addDoc() throws Exception { 3 //创建solr客户端的对象 4 HttpSolrClient client ...
- linux_命令格式和命令提示符
# linux 中一切皆文件 命令格式: 命令 [功能选项] [文件路径] cmd [options] [path] # 多个功能选项,要放在一起,如 rsync -avz /backup backu ...
- 对抗生成网络 Generative Adversarial Networks
1. Basic idea 基本任务:要得到一个generator,能够模拟想要的数据分布.(一个低维向量到一个高维向量的映射) discriminator就像是一个score function. 如 ...