当前位置: 首页 > 知识库问答 >
问题:

使用Springfox为Rest web服务创建pdf

韩捷
2023-03-14

我使用的是Spring(不是Spring boot)、Maven和Springfox。使用最后一个插件,我可以通过URL/swagger ui显示web服务文档。html但我需要一个文档来共享。我读到了<code>Swagger2Markup</code>的内容,因此我将此依赖项导入到pom文件中:

    <dependency>
        <groupId>io.github.swagger2markup</groupId>
        <artifactId>swagger2markup</artifactId>
        <version>1.3.1</version>
    </dependency>

和此存储库

<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>jcenter-releases</id>
        <name>jcenter</name>
        <url>http://jcenter.bintray.com</url>
    </repository>
</repositories>

至此,我已经创建了一个测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {AppConfig.class, SwaggerConfig.class})
@WebAppConfiguration
public class Swagger2MarkupTest {

    @Autowired
    private WebApplicationContext context;

    private MockMvc mockMvc;

    @Before
    public void setUp() {
        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context).build();
    }

    @Test
    public void convertSwaggerToAsciiDoc() throws Exception {
        String outputDir = ("C:/Users/Luca Calicchio/Downloads");
        MvcResult mvcResult = this.mockMvc.perform(get("/v2/api-docs")
                .accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andReturn();

        MockHttpServletResponse response = mvcResult.getResponse();
        String swaggerJson = response.getContentAsString();
        Files.createDirectories(Paths.get(outputDir));
        try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(outputDir, "swagger.json"), StandardCharsets.UTF_8)){
            writer.write(swaggerJson);
        }
    }
}

这个类创建了一个带有文档的json文件,现在我必须将这个文件转换为pdf。我还没有找到这一步骤的指南,只有这一指南

>

  • 在单元或集成测试期间生成最新的 Swagger JSON 文件

    将 Swagger JSON 文件转换为 AsciiDoc

    添加手写的AsciiDoc文档

    将HTML和PDF工件复制到一个可执行的Spring Boot Jar文件中,并将其作为静态内容

    你能帮助我吗?

  • 共有1个答案

    谯德佑
    2023-03-14
    https://github.com/Swagger2Markup/spring-swagger2markup-demo
    

    注意pom.xml文件,它配置了上述所有步骤

     类似资料:
    • 4.4.1.4 创建/使用内部服务 内部服务是除了内部应用以外的应用禁止使用的服务。 它们用于内部开发的应用,以便安全地共享信息和功能。 以下是使用Messenger绑定类型服务的示例。 要点(创建服务): 定义内部签名权限。 需要内部签名权限。 不要定义意图过滤器,并将导出属性显式设置为true。 确认内部签名权限是由内部应用定义的。 尽管意图是从内部应用发送的,但要小心并安全地处理接收到的意图

    • 4.4.1.3 创建/使用伙伴服务 伙伴服务是只能由特定应用使用的服务。 系统由伙伴公司的应用和内部应用组成,用于保护在伙伴应用和内部应用之间处理的信息和功能。 以下是 AIDL 绑定类型服务的示例。 要点(创建服务): 不要定义意图过滤器,并将导出属性显式设置为true。 验证请求应用的证书是否已在自己的白名单中注册。 请勿(无法)通过onBind(onStartCommand, onHandl

    • 4.4.1.2 创建/使用公共服务 公共服务是应该由未指定的大量应用使用的服务。 有必要注意,它可能会收到恶意软件发送的信息(意图等)。 在使用公共服务的情况下,有必要注意,恶意软件可能会收到要发送的信息(意图等)。 下面展示了如何使用startService类型服务的示例代码。 要点(创建服务): 将导出属性显式设置为true。 小心并安全地处理接收到的意图。 返回结果时,请勿包含敏感信息。 A

    • 4.4.1.1 创建/使用私有服务 私有服务是不能由其他应用启动的服务,因此它是最安全的服务。 当使用仅在应用中使用的私有服务时,只要您对该类使用显式意图,那么您就不必担心意外将它发送到任何其他应用。 下面展示了如何使用startService类型服务的示例代码。 要点(创建服务): 将导出属性显式设置为false。 小心并安全地处理收到的意图,即使意图从相同应用发送。 由于请求应用在同一应用中,

    • 创建 faygo 的Web服务非常灵活自由。用户可以设置服务名称、服务版本号,一个项目应用可以同时创建多个服务、多种网络类型。 支持的网络类型: 网络类型 配置net_types值 HTTP http HTTPS/HTTP2(TLS) https HTTPS/HTTP2(Let’s Encrypt TLS) letsencrypt HTTPS/HTTP2(Let’s Encrypt TLS on

    • 虽然AngularJS提过了很多有用的服务,但是如果你要创建一个很棒的应用,你可能还是要写自己的服务。你可以通过在模块中注册一个服务工场函数,或者通过Modeul#factory api或者直接通过模块配置函数中的$provide api来实现。 所有的服务都符合依赖注入的原则。它们用一个唯一的名字将自己注册进AngularJS的依赖注入系统(injector),并且声明需要提供给工场函数的依赖。