在.Net Core WebAPI下给Swagger增加导出离线文档功能
一丶前言
最近刚接触到Swagger,在github上下载了它的源码和demo学习了一遍,发现这个组件非常好用,不过不足的是它没有导出离线文档的功能,于是乎我就想给它加一个导出功能
Swagger Github开源地址
二丶思路
其实说白了api文档就是一个html静态页面,html可以转word或者pdf,那问题就变简单了。
1.想办法拿到swagger生成的api接口json数据。
2.将json转化为html。
3.将html转换成word或者pdf等文件。
三丶实现
1.首先我们要解决第一个问题,要给Swagger的页面上加上导出按钮,Swagger提供了接口,我们可以用这个接口将js和css注入进去执行,如图:
效果如下:
2.拿到swagger生成的文档数据,我查阅了swagger github上的的源码找到了他生成文档的代码,如下图:
2.然后我们使用net core的ioc容器注入把这个对象注入到ioc容器中,以备后续使用它,如图:
3.从ioc容器中取出对象使用,将json对象转换为html,在将html转换为需要导出的文件。
如图:
这里用到了一个RazorEngine ,这是一个微软封装的模板引擎,最重要一点它可以脱离mvc使用,可以用它来定制自己的代码生成器,个人认为它比T4好用,吐槽一下,T4的语法看着是真的别扭。。再看RazorEngine语法看着舒服多了。
是不是很熟悉。
最终效果:
四丶结语
到这就结束了,其实也没有啥难度,就是要花时间累代码。IT最让人着迷的就是开源了,没有比学习别人的代码成长更快的了,我也支持一下开源。最后再感谢一下园友 @老张的哲学 的帮助。
五丶Github Demo,演示地址
Demo地址,顺便给个Star谢谢了。
演示地址:http://gaobili.cn:8600/swagger/index.html
原文地址:https://www.cnblogs.com/hjjblog/p/10231180.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
在.Net Core WebAPI下给Swagger增加导出离线文档功能相关推荐
- json接口文档模板_在.Net Core WebAPI下给Swagger增加导出离线文档功能
一丶前言 最近刚接触到Swagger,在github上下载了它的源码和demo学习了一遍,发现这个组件非常好用,不过不足的是它没有导出离线文档的功能,于是乎我就想给它加一个导出功能 Swagger G ...
- 通过Swashbukle给DotNet Core Web API 增加自动文档功能
DotNet Core Web API给开发者提供了一个很好的框架来开发Restful的API.那么这些API接口该如何管理起来呢?Swagger是一个很好的选择,Swagger不需要开发者额外去维护 ...
- 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
Swagger是一个描述RESTful的Web API的规范和框架.如果使用ASP.NET的话,可以用Swashbuckle来自动生成Swagger,具体参考如何使 WebAPI 自动生成漂亮又实用在 ...
- swagger自动创建接口文档用法
现在的开发大部分都是前后端分离的模式了,后端提供接口,前端调用接口.后端提供了接口,需要对接口进行测试,之前都是使用浏览器开发者工具,或者写单元测试,再或者直接使用Postman,但是现在这些都已经o ...
- Spring Boot 集成 Swagger 生成 RESTful API 文档
原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...
- ABP给WebApi添加SwaggerUI,生成可交互接口文档
在ABP模板项目中,通过SwaggerUI可以为我们的WebApi生成动态的可交互接口文档页面,从而可以很方便的测试调用我们的WebApi接口. 一.集成Swagger 右键项目YoYo.Web,打开 ...
- 超详细!使用swagger自动生成Api文档(swagger-ui)
介绍 swagger是什么? swagger-ui 使用swagger-ui 简单使用 swagger api注解 本文参考: 介绍 这里是一些介绍,如果想直接看如何使用,请直接跳过这部分.但如果有时 ...
- ASP.NET Web API 使用Swagger生成在线帮助测试文档
ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线 ...
- swagger php修改成中文,PHP使用swagger自动生成API文档
使用 swagger 自动生成 API 文档 使用 swagger 自动生成 API 文档,有需要的朋友可以参考下. 一.下载 swagger-ui 直接上传服务器 二.下载 swagger-php ...
最新文章
- Codis——分布式Redis服务的解决方案
- A*寻路算法所生成的路径
- python 对象锁_也许你对 Python GIL 锁的理解是 错的。
- angularjs中按回车事件_浅谈angularjs中响应回车事件
- Codeforces Round #710 (Div. 3)
- jersey 过滤_Jersey
- iostream类 - C++输入输出(一)
- 手写minist的DataLoader
- Ruby语言入门之Hello world
- 叮铃铃~: 一个前端铃声/提示音组件
- ant批量处理word文件内容_让你效率翻倍的15个Word批量操作小技巧
- 如何进行EMC Symmetrix (DMX或者VMAX)的系统健康检查
- Unity - Timeline 之Creating a Timeline Asset and Timeline instance(创建Timeline Asset和Timeline 实例)
- 阿里云一键部署 Hadoop 分布式集群
- Apche OFBiz 反序列化漏洞复现
- android 高德路线,【Android呼叫高德路线规划】
- 安卓 11 文件储存
- 练手必备,20个Python实战项目含源代码
- 选择沃创云AI智能外呼机器人,实现真正的开源节流
- “云控制服务”的设想
热门文章
- 【tomcat】servlet原理及其生命周期
- java提示找不到或无法加载主类
- zabbix JMX监控 tomcat
- C# 数据结构--排序[下]
- qsort(bsearch,lsearch)—标准库排序,查找
- 【wordpress基础教程一】:wordpress简介和安装
- Exchange Server2010系列之十一:部署CAS+HT角色高可用性
- 3G助推智慧医疗 看病将更加“智能化”
- 金山安全实验室公布中国互联网六大类钓鱼网站
- 如何计算 string 的 crc32 值 ?