/**
* This enables swagger. See http://localhost:8080/v2/api-docs for the swagger.json output!
* @param actuatorEndpointHandlerMapping this endpoint handler mapping contains all the endpoints provided by the
* spring actuator. We will iterate over all the endpoints and exclude them from the swagger documentation.
* @return the docket.
*/
@Autowired
@Bean
public Docket swaggerSpringMvcPlugin(final EndpointHandlerMapping actuatorEndpointHandlerMapping) {
ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.apiInfo(apiInfo())
.securitySchemes(securitySchemes())
.select();
// Ignore the spring-boot-actuator endpoints:
Set<MvcEndpoint> endpoints = actuatorEndpointHandlerMapping.getEndpoints();
endpoints.forEach(endpoint -> {
String path = endpoint.getPath();
log.debug("excluded path for swagger {}", path);
builder.paths(Predicates.not(PathSelectors.regex(path + ".*")));
});
return builder.build();
}
6条答案
按热度按时间t3irkdon1#
您可以在Swagger中配置要添加到文档中的路径:
将显示所有可用的端点。
.paths(PathSelectors.any("/mypath/**"))
将仅限于在mypath.
中公开的端点x6h2sr282#
更新日期:2017年4月26日,更新实施。提示的积分为Andy Brown。
由于我们的编码约定,我们没有为端点指定特定的前缀,所以我在寻找一个排除执行器端点的解决方案,而不是包含我自己的路径。
我已经想出了以下配置来只排除执行器端点。这样,我就不必在添加新端点后更新配置,也不必为自己的端点添加前缀来将它们与执行器端点区分开来。
dohp0rv53#
嗨,你可以排除正则表达式的路径,你可以链他们.
i7uq4tfw4#
要在springdoc-openapi中显示
spring-boot-actuator
端点,只需添加以下属性:wrrgggsh5#
通过
application.properties
文件将执行器端点移动到上下文路径中。那么你就可以排除那条路
您可能还需要排除错误控制器
rdrgkggo6#
备选方案:
a)排除正则表达式中带有NOT的路径?
B)或链和对 predicate 求反: