是否可以将swagger交互式api文档导出为静态html以放入Confluence中?

webghufk  于 2022-11-06  发布在  其他
关注(0)|答案(2)|浏览(204)

我有一个 Boot 项目,我有一个用swagger自动创建的API文档,有以下依赖项:

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

它看起来很漂亮,所以我很好奇,如果我可以导出它作为html(但与css有漂亮的外观)使用它在汇合。
我已经尝试过通过https://editor.swagger.io/来做这件事,并将我的swagger json粘贴在那里,但导出为html、html2或dynamichtml看起来很糟糕。
有没有办法获得和项目中一样的交互式swaggerapi文档。

guicsvcw

guicsvcw1#

而不是导出我在iframe中引用的swagger UI。

或者,您也可以使用网站下载器下载页面,例如:https://www.httrack.com/。它将下载所有的CSS,javascript等。一旦你有文件,你应该复制到一个网络服务器,并从你的iframe在融合参考。
如果您没有Web服务器,则一个更简单的解决方案是使用
https://chrome.google.com/webstore/detail/singlefile/mpiodijhokgodhhofbcjdecpffjipkle
然后将文件附加到confluence并包含以下iframe:

<iframe id="result" style="width: 100%; height: 100vh;border:none;" 
scrolling="no"></iframe>
<script>
$(document).ready(function() {
$.ajax({
 method: 'GET',
 url: '/download/attachments/...',
 dataType: 'text',
 success: function(data) {
 var iframe = document.getElementById('result');
iframe = iframe.contentWindow || ( iframe.contentDocument.document || iframe.contentDocument);

iframe.document.open();
iframe.document.write(data);
iframe.document.close();
 }
});
});
</script>

请确保将/download/attachments/...更改为下载按钮指向的实际下载URL

请在此处查看解决方案:
https://community.atlassian.com/t5/Confluence-questions/HTML-file-as-attachment/qaq-p/641523#M86102

eoxn13cs

eoxn13cs2#

我不知道如何用Swagger实现这一点,但是Swagger的json可以很容易地导出为Redocstatic html

yarn global add redoc-cli
redoc-cli build http://localhost:5000/swagger/v1/swagger.json

相关问题