Spring Boot引入swagger-ui 後swagger-ui.html無法訪問404的問題
阿新 • • 發佈:2020-09-01
最近給graphserver增加swagger,記錄下過程與問題解決。
Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務,後端整合下Swagger,然後就可以提供一個線上文件地址給前端同學。
引入 Swagger
pom中加入相關配置:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
增加Swagger2Config
,新增@EnableSwagger2
,可以通過定義Docket bean實現自定義。
@Configuration @EnableSwagger2 @Profile("swagger") @ComponentScan("xxx.controller") public class Swagger2Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .enable(true) .select() .apis(RequestHandlerSelectors.basePackage("xxx.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("XXX Rest Server") .description("XXXRest介面") .contact(new Contact("contract","url","email")) .version("1.0") .build(); } }
swagger-ui.html 404問題
專案中有web配置,因此懷疑是這些配置影響了,搜尋下發現這位仁兄有類似經歷:https://www.cnblogs.com/pangguoming/p/10551895.html
於是在WebMvcConfig 配置中,override addResourceHandlers
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); }
搞定收工。
延伸閱讀
server端有了swagger,前端如何更優先的呼叫?
參見:Vue 使用typescript, 優雅的呼叫swagger API,筆者提供了一個開源npm庫,可以為前端生成呼叫axios呼叫程式碼。
參考 https://www.jb51.net/article/130207.htm
總結
到此這篇關於Spring Boot引入swagger-ui 後swagger-ui.html無法訪問404的問題的文章就介紹到這了,更多相關Spring Boot引入 swagger-ui.html無法訪問404內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!