[springboot::]整合swagger2,構建RESTful api
阿新 • • 發佈:2018-12-25
1.本來以為會很容易整合的,結果一直報404,試了好久,心累…最後終於找到解決辦法
http://localhost:8080/swagger-ui.html 訪問不到,原因是,是因為 MVC 沒有找到 swagger-ui 包中的 swagger-ui.html 檔案; 但是這個檔案在jar包中是切實存在的.以下是具體程式碼
首先是swagger的配置
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class Swagger2 { @Bean public Docket createRestApi(){ System.out.println("====== SWAGGER CONFIG ======"); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) //掃描的請求controler .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("swagger2構建RESTful Api ") .description("介面文件") .contact("ningL") .version("1.0") .build(); } }
3.按理說這樣swagger就已經配置好了,但是如果出現404的么蛾子,請在配置包中 新增一個相當於配置mvc 靜態資源的類
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class MVCconfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //新增一些靜態資源 圖片,樣式 等 registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); // 解決 SWAGGER 404報錯 registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
4.啟動專案,訪問http://localhost:8080/swagger-ui.html,看看有沒有解決,反正我的是解決了