Spring Boot 如何使用openapi.yaml文件生成swagger-ui?

nvbavucw  于 2023-04-20  发布在  Spring
关注(0)|答案(2)|浏览(382)

我已经使用OpenApi规范文件定义了REST API。然后我从这个规范生成了Java类。有没有一种方法可以使用api.yaml来生成swagger-ui.html而不是java类?
我尝试创建一个端点(使用/v3/api-docs路径),它读取文件并将其内容作为http响应返回。它工作正常,但我觉得可能有更好的解决方案。
通常Swagger在/v3/api-docs端点下自动生成openapi.yaml,Swagerr UI使用它来生成swagger-ui.html。在我的例子中,我已经有了openapi.yaml,但我不知道如何告诉Swagger-UI使用我的文件来生成html页面。
谢谢

lyfkaqu1

lyfkaqu11#

openapi-generator有几个不同的生成器,可以读取yaml文件并以您喜欢的语言输出代码。一些生成器包括javahtmlhtml2springjavascript。生成器的完整列表可以在here中找到。
openapi-generator可以通过CLI及其maven and gradle plugins运行。
既然你已经有了一个有效的openapi规范文件,我建议使用generator来生成一个使用spring-boot库的spring服务器,并将documentationProvider设置为springdoc。这将生成带有适当springdoc注解的spring java类以及你请求的swagger-ui.html端点。

wn9m85ua

wn9m85ua2#

Springdoc v2依赖项包含到pom.xml中会生成一个Swagger UI页面,该页面基于http://localhost:8080/swagger-ui/index.html上可访问的组件扫描控制器及其http://localhost:8080/v3/api-docs上的OpenAPI描述。

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.4</version>
</dependency>

注意我使用Sping Boot 3.0.2

相关问题