我有spring-restdocs的spring-boot应用程序,我想在该应用程序中为生成的文档创建端点。使用生成的html文档(asciidoctor)公开端点的最佳方法是什么?
我可以将index.html包含到jar文件中,但实际上并不知道如何创建将使用该html并在外部公开的端点。这个html是在test-stage之后和build-jar-stage之前生成的。
从官方文件: 您可以将您创建的HTML文档发布到静态网站,或将其打包并从应用程序本身提供。
e.g。我在'build / asctiidoctor / html5'文件夹中有index.html,并希望创建将返回index.html的控制器。
答案 0 :(得分:1)
根据documentation,你可以配置你的构建系统(Maven,Gradle)将HTML作为静态内容打包到spring-boot jar中,以便它可以由Spring Boot自动提供服务'
对于Gradle 4.6和Spring Boot 2.0.0.RELEASE:
bootJar {
dependsOn asciidoctor
from ("${asciidoctor.outputDir}/html5") {
into 'static/docs'
}
}
然后可以通过'localhost:<your-port>/<your-context-path/docs/index.html
答案 1 :(得分:0)
从AsciiDoc生成html之后,只需将html文件复制到target/generated-docs
中(请参阅https://spring.io/guides/gs/testing-restdocs/)。然后,Spring-Boot将在端点<...> / docs / index.html中获取并托管文档。
您可以使用maven-resources-plugin
来完成这项工作。
答案 2 :(得分:0)
要使用Spring Boot使用url http:// localhost:8081 / docs / api-guide.html在本地访问api指南,请添加以下插件:
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>${asciidoctor-maven-plugin.version}</version>
<executions>
<execution>
<id>generate-docs</id>
<phase>post-integration-test</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html</backend>
<doctype>book</doctype>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-asciidoctor</artifactId>
<version>${spring-restdocs.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>post-integration-test</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.outputDirectory}/static/docs
</outputDirectory>
<resources>
<resource>
<directory>
${project.build.directory}/generated-docs
</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>`