使用自定义404异常处理程序启用swagger UI

时间:2019-09-07 14:04:07

标签: spring-boot kotlin swagger swagger-ui

我想在SpringBoot中禁用默认的404处理程序,例如:

@ExceptionHandler(value = [NoHandlerFoundException::class])
    fun handleNotFoundException(e:NoHandlerFoundException):ResponseEntity<ApiError>{
        return ResponseEntity.status(HttpStatus.NOT_FOUND)
                .contentType(MediaType.APPLICATION_JSON_UTF8)
                .body(ApiError("Resource not found"))
}

,并能够使用/swagger-ui.html#上的api文档来管理swagger UI。

但是,禁用默认的404处理程序需要设置 spring.resources.add-mappings=false中的application-properties,这也将禁用投放摇摇欲坠的用户界面。有没有办法将两者结合起来?

我将springboot:2.1.7springox:swagger:2.9.2springfox:swagger-ui:2.9.2一起使用

2 个答案:

答案 0 :(得分:0)

我们已经实现了swagger-ui和自定义异常处理程序。我们采用的方法是解析api的swagger文件。

我们通过配置Docket的@Bean来配置swagger,该链接也在此链接中指定:https://springframework.guru/spring-boot-restful-api-documentation-with-swagger-2/

答案 1 :(得分:0)

是的,您可以通过扩展 WebMvcConfigurer 并添加以下方法来实现

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
        .addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**")
        .addResourceLocations("classpath:/META-INF/resources/webjars/");
}

注意:确保您的类使用 @configuration

注释