網上無意中看到swagger日志插件和swagger-bootstrap-ui感覺蠻實用的。這樣能動態生成對接文檔,還能在線測試接口,能直觀看到接口響應信息的格式,對於前端人員來說比較方便,同時對於服務器開發人員來說也比較不錯,能夠統一格式,且不用專門切換到單獨的文檔文件,還能直接生成.md文件,還是比較方便的,配置期間,也出現了一些問題,特此記錄一下,也方便以后使用的時候方便查看。
1.引入maven依賴
<!--5.1.1swagger文檔依賴--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <!--5.1.2.swagger的可視化展示依賴:第三方,改版后的最后一個版本--> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
2.1書寫配置類,並注入到spring mvc核心容器(注解和xml方式二選一,此處我用的是xml方式)
package cn.drip.dripblog.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * @Author: Chunhai.Hu * @Date: 2020/9/10 0010 10:26 * @Last Modified by: Chunhai.Hu * @Last Modified time: 2020/9/10 0010 10:26 * @Desc: Swagger文檔配置類 */ @EnableSwagger2 @EnableWebMvc public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("cn.drip.dripblog.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("dripblog水滴博客API說明") .description("dripblog水滴博客API說明文檔,如有疑問請郵件聯系作者。") .termsOfServiceUrl("http://localhost:8000/") .contact("viphuchunhai@163.com") .version("1.0.0") .build(); } }
2.2.注入springmvc核心容器
<!--注入swagger文檔配置類-->
<bean id="swaggerConfig" class="cn.drip.dripblog.config.SwaggerConfig"></bean>
3.1.配置文檔訪問的頁面路由(xml和配置類方式二選一,此處我使用配置xml方式)
<!--配置swagger-bootstrap-ui訪問的靜態資源--> <mvc:resources mapping="doc.html" location="classpath:/META-INF/resources/"/> <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
3.2.注解方式(使用了3.1的方式就不要寫3.2的了)
package cn.drip.dripblog.config; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * @Author: Chunhai.Hu * @Date: 2020/9/10 0010 12:40 * @Last Modified by: Chunhai.Hu * @Last Modified time: 2020/9/10 0010 12:40 * @Desc: 配置swagger-bootstrap-ui訪問的靜態資源: * @使用xml和配置類兩種方式,選其一即可 */ @Configuration public class SwaggerUiConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
4.配置web.xml中的404頁面(CustomizeDispatcherServlet為自定義請求處理器,詳見:https://www.cnblogs.com/Nick-Hu/p/13650453.html(3.2點))
<!--步驟4.1:配置初始頁和異常處理頁面--> <servlet-mapping> <servlet-name>CustomizeDispatcherServlet</servlet-name> <url-pattern>/static/view/404.html</url-pattern> </servlet-mapping> <error-page> <error-code>404</error-code> <location>/static/view/404.html</location> </error-page> <servlet-mapping> <servlet-name>CustomizeDispatcherServlet</servlet-name> <url-pattern>/static/view/405.html</url-pattern> </servlet-mapping> <error-page> <error-code>405</error-code> <location>/static/view/405.html</location> </error-page> <servlet-mapping> <servlet-name>CustomizeDispatcherServlet</servlet-name> <url-pattern>/static/view/500.html</url-pattern> </servlet-mapping> <error-page> <error-code>500</error-code> <location>/static/view/500.html</location> </error-page>
5.訪問測試:訪問地址:http://{ip}:{port}/{projectName}/doc.html

6.配置參考:https://doc.xiaominfo.com/(swagger-bootstrap-ui官網)
