我正在用我自己的API构建第三方软件的增强功能。我有第三方的用于swagger的静态.yml文件,但是对于我自己的端点,我使用springdoc注释和OpenAPI bean声明来生成文档。我能用同样的装腔作势的医生给我看一下吗?
动态生成的文档:
@Configuration
public class SwaggerConfiguration {
@Bean
public GroupedOpenApi myOpenApi() {
String group = "My Group API";
String paths[] = { "/**" };
GroupedOpenApi api = GroupedOpenApi.builder()
.group(group)
.pathsToMatch(paths)
.packagesToScan("org.mypackage")
.addOpenApiCustomiser(openApi -> {
openApi.setInfo(
new Info()
.title(group)
.description("[Base URL: /myapi ]")
);
}).build();
return api;
}
}静态.yml设置在application.yml中:
springdoc:
swagger-ui:
urls:
- name: My Group 1
display-name: My Group 1
url: group1.yml
- name: My Group 2
display-name: My Group 2
url: group2.yml因此默认情况下,springdoc将在swagger中显示我动态生成的API,但是一旦我添加了静态设置,静态文件驱动的swagger组就会显示出来,而动态的就不会显示了。这两者都能证明吗?
发布于 2022-09-12 15:30:41
我想出了解决办法,但可能是黑客。如果有合适的方法请告诉我.
即使我添加了静态设置,动态生成的openapi java bean仍然在执行,因此动态URL必须仍然存在,尽管springdoc在加载swagger页面时没有显示动态URL。
因此,要使用springdoc显示静态和动态的swagger内容:
。
在它生成的swagger页面中,应该有一个指向openapi生成文件的url链接(在本例中是)。单击它,它将打开一个新的选项卡。
的集合项。
springdoc:
swagger-ui:
urls:
- name: My Group 1
display-name: My Group 1
url: group1.yml
- name: My Group 2
display-name: My Group 2
url: group2.yml
- name: My Group API
display-name: My Group API
url: /v3/api-docs/My%20Group%20API启动您的spring-boot应用程序,您将在下拉式中同时拥有静态文件swagger组和动态组。
https://stackoverflow.com/questions/73690948
复制相似问题