我已经使用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页面。
谢谢
2条答案
按热度按时间lyfkaqu11#
openapi-generator
有几个不同的生成器,可以读取yaml文件并以您喜欢的语言输出代码。一些生成器包括java
,html
,html2
,spring
和javascript
。生成器的完整列表可以在here中找到。openapi-generator
可以通过CLI及其maven and gradle plugins运行。既然你已经有了一个有效的openapi规范文件,我建议使用generator来生成一个使用
spring-boot
库的spring服务器,并将documentationProvider
设置为springdoc
。这将生成带有适当springdoc注解的spring java类以及你请求的swagger-ui.html
端点。wn9m85ua2#
将Springdoc v2依赖项包含到
pom.xml
中会生成一个Swagger UI页面,该页面基于http://localhost:8080/swagger-ui/index.html上可访问的组件扫描控制器及其http://localhost:8080/v3/api-docs上的OpenAPI描述。注意我使用Sping Boot 3.0.2