从 Swagger API 文档生成 PDF

问题描述 投票:0回答:6

我使用 Swagger UI 来显示我的 REST Web 服务并将其托管在服务器上。

但是Swagger的这项服务只能在特定的服务器上访问。如果我想离线工作,有人知道如何使用 Swagger UI 创建静态 PDF 并使用它吗?此外,PDF 可以轻松地与无法访问服务器的人共享。

非常感谢!

pdf swagger-ui
6个回答
47
投票

便捷方式:使用浏览器打印/预览

  1. 隐藏编辑器窗格
  2. 打印预览(我用的是firefox,其他也可以)
  3. 更改其页面设置并打印为 pdf


35
投票

我找到了一种使用 https://github.com/springfox/springfox 的方法并且 https://github.com/RobWin/swagger2markup

使用 Swagger 2 来实现文档。


34
投票

我创建了一个专门解决该问题的网站 https://www.swdoc.org/。因此,它会按照答案中的建议自动进行

swagger.json -> Asciidoc, Asciidoc -> pdf
转换。这样做的好处是您不需要执行安装过程。它接受 url 形式的规范文档或只是原始 json。项目是用 C# 编写的,其页面是 https://github.com/Irdis/SwDoc

编辑

在此处验证您的 json 规范可能是个好主意:http://editor.swagger.io/如果您在使用 SwDoc 时遇到任何问题,例如生成的 pdf 不完整。


1
投票

对我来说,最简单的解决方案是将 swagger (v2) 导入 Postman,然后转到 Web 视图。在那里您可以选择“单列”视图并使用浏览器打印为 pdf。不是自动化/集成解决方案,但适合一次性使用。它对纸张宽度的处理比从 editor2.swagger.io 打印要好得多,在 editor2.swagger.io 中滚动条会导致部分内容被隐藏。


0
投票

我追求的是相对快速、简单、最少的软件安装。我正在寻找一些可以粘贴到 Word 文档中以表明 API 存在的内容;我不需要任何级别的交互性或复制粘贴操作的能力。

我已经有一个名为 PicPick 的软件,这是一种屏幕截图工具,可以捕获滚动窗口(它滚动、屏幕截图并拼接在一起生成一个令人难以置信的高图像)

它也可以另存为 PDF,但在纸张尺寸方面表现不佳,所以我通过 Publisher 传递它

  • 运行我的启用了 swagger 的 netcore API 项目
  • 浏览器出现了大张旗鼓的“尝试一下”页面,这对于目的来说已经足够了
  • 隐藏试用按钮:右键单击“试用”>>“检查元素”>>添加CSS类>>
    display: none
    进行试用
  • PicPick 托盘图标 >> 捕获 >> 滚动窗口
  • 单击浏览器的内容窗格
  • 注意:如果光标保持悬停在窗口上,PP 可能只能滚动窗口 - 至少我发现的是这样的
  • 等待一段时间,它会重复滚动、截图并将图像拼接在一起
  • 将结果另存为 PNG
  • 加载 Publisher,设置自定义页面尺寸(PNG 尺寸除以 96)英寸
  • 插入图像并重置为100%大小
  • 另存为 PDF

0
投票

您可以尝试这个新的 OpenAPI 转 PDF 生成器 - ApiBake:

https://www.npmjs.com/package/apibake

© www.soinside.com 2019 - 2024. All rights reserved.