一丶前言

最近刚接触到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增加导出离线文档功能相关推荐

  1. json接口文档模板_在.Net Core WebAPI下给Swagger增加导出离线文档功能

    一丶前言 最近刚接触到Swagger,在github上下载了它的源码和demo学习了一遍,发现这个组件非常好用,不过不足的是它没有导出离线文档的功能,于是乎我就想给它加一个导出功能 Swagger G ...

  2. 通过Swashbukle给DotNet Core Web API 增加自动文档功能

    DotNet Core Web API给开发者提供了一个很好的框架来开发Restful的API.那么这些API接口该如何管理起来呢?Swagger是一个很好的选择,Swagger不需要开发者额外去维护 ...

  3. 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档

    Swagger是一个描述RESTful的Web API的规范和框架.如果使用ASP.NET的话,可以用Swashbuckle来自动生成Swagger,具体参考如何使 WebAPI 自动生成漂亮又实用在 ...

  4. swagger自动创建接口文档用法

    现在的开发大部分都是前后端分离的模式了,后端提供接口,前端调用接口.后端提供了接口,需要对接口进行测试,之前都是使用浏览器开发者工具,或者写单元测试,再或者直接使用Postman,但是现在这些都已经o ...

  5. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  6. ABP给WebApi添加SwaggerUI,生成可交互接口文档

    在ABP模板项目中,通过SwaggerUI可以为我们的WebApi生成动态的可交互接口文档页面,从而可以很方便的测试调用我们的WebApi接口. 一.集成Swagger 右键项目YoYo.Web,打开 ...

  7. 超详细!使用swagger自动生成Api文档(swagger-ui)

    介绍 swagger是什么? swagger-ui 使用swagger-ui 简单使用 swagger api注解 本文参考: 介绍 这里是一些介绍,如果想直接看如何使用,请直接跳过这部分.但如果有时 ...

  8. ASP.NET Web API 使用Swagger生成在线帮助测试文档

    ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线 ...

  9. swagger php修改成中文,PHP使用swagger自动生成API文档

    使用 swagger 自动生成 API 文档 使用 swagger 自动生成 API 文档,有需要的朋友可以参考下. 一.下载 swagger-ui 直接上传服务器 二.下载 swagger-php ...

最新文章

  1. Codis——分布式Redis服务的解决方案
  2. A*寻路算法所生成的路径
  3. python 对象锁_也许你对 Python GIL 锁的理解是 错的。
  4. angularjs中按回车事件_浅谈angularjs中响应回车事件
  5. Codeforces Round #710 (Div. 3)
  6. jersey 过滤_Jersey
  7. iostream类 - C++输入输出(一)
  8. 手写minist的DataLoader
  9. Ruby语言入门之Hello world
  10. 叮铃铃~: 一个前端铃声/提示音组件
  11. ant批量处理word文件内容_让你效率翻倍的15个Word批量操作小技巧
  12. 如何进行EMC Symmetrix (DMX或者VMAX)的系统健康检查
  13. Unity - Timeline 之Creating a Timeline Asset and Timeline instance(创建Timeline Asset和Timeline 实例)
  14. 阿里云一键部署 Hadoop 分布式集群
  15. Apche OFBiz 反序列化漏洞复现
  16. android 高德路线,【Android呼叫高德路线规划】
  17. 安卓 11 文件储存
  18. 练手必备,20个Python实战项目含源代码
  19. 选择沃创云AI智能外呼机器人,实现真正的开源节流
  20. “云控制服务”的设想

热门文章

  1. 【tomcat】servlet原理及其生命周期
  2. java提示找不到或无法加载主类
  3. zabbix JMX监控 tomcat
  4. C# 数据结构--排序[下]
  5. qsort(bsearch,lsearch)—标准库排序,查找
  6. 【wordpress基础教程一】:wordpress简介和安装
  7. Exchange Server2010系列之十一:部署CAS+HT角色高可用性
  8. 3G助推智慧医疗 看病将更加“智能化”
  9. 金山安全实验室公布中国互联网六大类钓鱼网站
  10. 如何计算 string 的 crc32 值 ?