导航

  • 前言
  • 离线文档
    • 1 保存为html
    • 2 导出成pdf文档
    • 3 导出成Word文档
  • 参考

前言

  早前笔者曾经写过一篇文章《研发团队,请管好你的API文档》。团队协作中,开发文档的重要性,这里就不再赘述,今天的话题集中在如何进一步提升更加高效的使用文档。

离线文档

  swagger已经很方便了,我们为什么还需要离线文档?公司同一个项目组,一般只要集成了swagger基本就够了,但是难免会有跨组,甚至会有公司对外合作的项目。特别是在"微服务大行其道的今天",多个团队之间,因为分工不同,权限不同,往往不能互相访问各个项目的swagger文档,通常的做法有以下几种:

  • 搭建统一的接口文档管理系统

    每个项目组的都要将各自的接口手动编写到归档到这里,需要查看,把人拉入组织即可查看。

  • 代码即文档

    提供源代码。同一个项目开发开发者。很多小公司就是这样。没有文档,只有源码。

  • 离线文档

    将文档导出成excel,docx,html等形式,对外输出,比如给第三方调用。

  本文将聚焦于如何将swaggerUI导出离线文档。

  笔者尝试了以下三种方式。

1 保存为html

Web开发者都知道,只要是网页你都可以另存为静态网页。

然后,右键用谷歌浏览器打开

当我运行我的代码时,它出错了:

swagger-ui-bundle.js:6 Fetch API cannot load file:///C:/swagger/v1/swagger.json. URL scheme must be "http" or "https" for CORS request.

  很明显和swagger.json有关系,还好对swagger有所了解。果断通过访问 http://localhost:5000/swagger/v1/swagger.json 下载swagger.json,并放在指定位置。

  再次运行,报错和刚才一样。这是跨源资源共享问题。

有两种处理办法:

  • 使用网络服务器。

    要为静态html/js文件运行一个简单的Web服务器。

  • 更改您的chrome启动参数,并让它知道您要忽略此安全功能。

详细请查阅:https://www.codenong.com/50445639/

这里我使用的是IIS服务器,将js和html一同部署在IIS上,如下:

  • 更改您的chrome启动参数,并让它知道您要忽略此安全功能。

  部署之后,通过部署的IP地址即可访问(PS:这个比较适合公司内部,比如前后端分离开发的是时候)。

2 导出成pdf文档

这个比较简单,不用写代码。利用windows自带的功能即可实现。

点击快捷键Ctrl+p,显示打印页面

保存即可。

3 导出成Word文档

  当然,尽管以上两种方式已经很方便了。可是总有些时候,遇到一些难缠的,又不讲道理,偏偏觉得将Swagger文档地址丢给客户会不够正式!死活要一份word文档。

  可是这个时候,如果接口数量上百个,甚至更多,一个一个手动输入word,那将是一笔耗时的工作。但却有什么办法可以解决呢?

  对了,利用Swagge生成的Json文件转换为word文档不就可以了吗?

实现方式
  • 获取Swagger接口文档的Json文件

  • 解析Json文件数据填充到Html的表格中

  • 根据生成的html转work文档

  这就需要在swagger文档代码中做一些扩展。详情可以参考:基于.NetCore3.1系列 —— 使用Swagger导出文档

  导出word的格式如下:

基于swagger生成的文档数据,我们就可以按照自己的想法来生成自定义格式的数据了。有兴趣的童鞋可以继续深挖。

参考

懒得写文档,swagger文档导出来不香吗的更多相关文章

  1. ASP.NET WebApi 文档Swagger深度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明博客园蜗牛原文地址,cnblogs.com/tdws   写在前面 请原谅我这个标题党,写到了第100篇随笔,说是深度优化,其实也并没有什么深度 ...

  2. ASP.NET WebApi 文档Swagger中度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws   写在前面 在后台接口开发中,接口文档是必不可少的.在复杂的业务当中和多人对接的情况下,简 ...

  3. revel + swagger 文档也能互动啦

    beego 从 1.3 后开始支持自动化API文档,不过,目测比较复杂,一直期望 revel 能有官方支持. revel 确实已经有了官方支持的计划,有可能将在 0.14 版本支持,现在才 0.11. ...

  4. Swagger文档转Word 文档

    GitHub 地址:https://github.com/JMCuixy/SwaggerToWord/tree/developer 原创作品,转载请注明出处:http://www.cnblogs.co ...

  5. 利用typescript生成Swagger文档

    项目地址:https://github.com/wz2cool/swagger-ts-doc demo代码地址:https://github.com/wz2cool/swagger-ts-doc-de ...

  6. WebApi 文档Swagger

    NET WebApi 文档Swagger中度优化   本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws   写在前面 在后台接口开发中,接口文 ...

  7. springboot成神之——swagger文档自动生成工具

    本文讲解如何在spring-boot中使用swagger文档自动生成工具 目录结构 说明 依赖 SwaggerConfig 开启api界面 JSR 303注释信息 Swagger核心注释 User T ...

  8. Swagger文档转Word

    Swagger文档转Word 文档   GitHub 地址:https://github.com/JMCuixy/SwaggerToWord/tree/developer 原创作品,转载请注明出处:h ...

  9. Spring Boot:整合Swagger文档

    综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于 ...

随机推荐

  1. 【题解】[LNOI2014]LCA

    题目戳我 \(\text{Solution:}\) 这题的转化思想很巧妙-- 考虑把\(dep\)给拆掉. 首先可以明确的是,每一个\(LCA\)一定在\(root\to z\)的路径上. 考虑一个\ ...

  2. Java泛型的协变与逆变

    泛型擦除 Java的泛型本质上不是真正的泛型,而是利用了类型擦除(type erasure),比如下面的代码就会出现错误: 报的错误是:both methods  have same erasure ...

  3. 2017-01-26--编译busybox总结

    错误一: ox@ubuntu:busybox-1.16.0$ make menuconfig Makefile:431: *** mixed implicit and normal rules: de ...

  4. 关于【s】和[t]字符

    [s]:当一个具有执行权限的文件设置 [s](SetUID) 权限后,用户执行这个文件时将以文件所有者的身份执行.passwd 命令具有 SetUID 权限,所有者为 root(Linux 中的命令默 ...

  5. RLP序列化算法

    RLP RLP(Recursive Length Prefix)递归长度前缀编码,是由以太坊提出的序列化/反序列化标准,相比json格式体积更小,相比protobuf对多语言的支持更强. RLP将数据 ...

  6. hdu6376 度度熊剪纸条-----01背包

    题目:度度熊有一张纸条和一把剪刀.   纸条上依次写着 N 个数字,数字只可能是 0 或者 1.     度度熊想在纸条上剪 K 刀(每一刀只能剪在数字和数字之间),这样就形成了 K+1 段.   他 ...

  7. 初识 MongoDB 和 .NET Core 入门

    昨天搭建完毕 MongoDB 集群 后,开始计划了解 MongoDB ,并引入使用场景,这里介绍一下学习过程中的一些笔记,帮助读者快速了解 MongoDB 并使用 C# 对其进行编码. 浅入 Mong ...

  8. Aspose.Words实现邮件合并功能和打印

    前言 最近公司要做一个B/S架构的web打印系统,主要是可以上传.下载.邮件合并.打印等等,还有就是角色的分配.用户的创建.日志记录等等,跟一般的web系统一样.可能不一样的就是需求:想把excel的 ...

  9. Paillier同态加密的介绍以及c++实现

    我们先来简短认识一下Paillier同态加密算法: 如果就这么按照定义来用最简朴的c++程序写 就像这样: #include <iostream> #include <math.h& ...

  10. RocketMQ消息丢失解决方案:同步刷盘+手动提交

    前言 之前我们一起了解了使用RocketMQ事务消息解决生产者发送消息时消息丢失的问题,但使用了事务消息后消息就一定不会丢失了吗,肯定是不能保证的. 因为虽然我们解决了生产者发送消息时候的消息丢失问题 ...