swagger 如何从OpenAPI 3.0生成PDF或标记?

r1zk6ea1  于 2023-10-18  发布在  其他
关注(0)|答案(6)|浏览(318)

我有一个OpenAPI 3.0规范,我想用它生成一个PDF,以便它可以提供给最终用户。
目前,swagger-spec-to-pdfswagger2markup等工具仅支持Swagger 2.0,而不支持OpenAPI 3.0。是否可以从OpenAPI 3.0规范生成PDF而不将其转换为Swagger 2.0?

slsn1g29

slsn1g291#

一个可能的解决方案是将OpenAPI 3.0定义转换为HTML文档,然后使用浏览器的“保存为PDF”功能将HTML转换为PDF。
请按照以下步骤操作:
1.转到https://editor.swagger.io
1.粘贴OpenAPI 3.0 YAML/JSON定义。
1.选择生成客户端> html
1.下载并解压缩文件。
1.在浏览器中打开index.html页面,例如Chrome。
1.选择文件>打印,将目标更改为保存为PDF,然后保存页面。

hzbexzde

hzbexzde2#

我刚刚找到了RapiPDF,它能够从OpenAPI 3.0定义生成PDF。
但它仍然不是我正在寻找的理想工具。到目前为止,我发现了这些限制:

  • 没有CLI,只能在浏览器中运行。所以我不能在自动化管道中使用它。
  • 不支持回调
  • 生成的文档中没有示例
pgccezyw

pgccezyw3#

您可以使用this site并直接将OpenAPI 3.0规范(在json中)发布到其中。这是最简单的方法,我认为生成的PDF看起来很漂亮。

jtoj6r0c

jtoj6r0c4#

ApiBake -将OpenAPI转换为PDF:https://www.npmjs.com/package/apibake我是该工具的开发人员。
2023年更新:该工具已从Dart转换为Node.js,添加了yaml支持,修复了一些问题。添加了可定制的配置/样式(现在主要是配色方案配置)。
该项目的重点是生成视觉上简单,但有用的文档,书签和类型的链接,便于导航。也就是说,PDF中的对象定义很容易在TypeScript/JavaScript代码中复制和使用。现在正在处理输出文档的自定义样式。欢迎反馈。

a11xaf1n

a11xaf1n5#

以下2个包帮助我从OpenAPI json文件生成PDF:

  • org.openapitools:openapi-generator-gradle-plugin:5.0.0-beta2
  • org.asciidoctor:asciidoctor-gradle-jvm-pdf:3.2.0

应用相关的 Plugin 类,剩下的就是非常简单的任务配置。这是我的groovy插件,但如果你需要的话,找到相应的gradle DSL扩展应该不难。

project.plugins.apply OpenApiGeneratorPlugin
GenerateTask adoc = project.tasks.withType(GenerateTask).iterator().next()
adoc.with {
    it.input = swagger.outputDir.path + '/' + swagger.outputFileName + '.json'
    it.generatorName.set 'asciidoc'
    it.outputDir.set swagger.outputDir.path

    // Leaving the below option empty can cause rendering issues
    it.configOptions.putAll([
        'infoUrl'  : 'https://example.com',
        'infoEmail': '[email protected]',
    ])
}

project.plugins.apply AsciidoctorJPdfPlugin
project.tasks.withType(AsciidoctorPdfTask).iterator().next().with {
    it.sourceDir = adoc.outputDir
    it.outputDir = it.sourceDir
}

如果有关于此代码段的问题(或语法错误),请告诉我。

mgdq6dx1

mgdq6dx16#

我发现最简单和最好的解决方案就是使用通常的https://editor.swagger.io/。一旦你对生成的结果(在右边)感到满意,只需拖动左边的中央光标(覆盖你的源代码),以便只可视化最终文档。然后,如果您使用Chrome(类似于Firefox),只需(屏幕中的右键或菜单)选择“打印”,并为“目的地”选择“保存为PDF”。

相关问题