本文最后更新于2 分钟前,文中所描述的信息可能已发生改变。
前言:在前后端分离开发的过程中,前端和后端需要进行api对接进行交互,就需要一个api规范文档,方便前后端的交互,但api文档不能根据代码的变化发生实时动态的改变,这样后端修改了接口,前端不能及时获取最新的接口,导致调用出错,需要手动维护api文档,加大了开发的工作量和困难,而swagger的出现就是为了解决这一系列的问题。
简单来说的话就是一个基于openAPI构建的可用于动态生成后端接口文档的工具集
通过第三方依赖knife4j使用swagger。
步骤:
- 导入依赖pom
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.2</version> </dependency>
- 编写配置Swagger的配置对象docket并在配置类中注入容器中java
@Bean public Docket docketUser(){ ApiInfo apiInfo = new ApiInfoBuilder() .title("接口文档") .version("1.0") .description("一个接口文档") .build(); Docket docket = new Docket(DocumentationType.SWAGGER_2) .groupName("用户端接口") .apiInfo(apiInfo) //开启文件上传测试功能 .consumes(Collections.singleton(MimeTypeUtils.APPLICATION_OCTET_STREAM_VALUE)) .select() .apis(RequestHandlerSelectors.basePackage("com.helo.controller")) .paths(PathSelectors.any()) .build(); return docket; }
- 配置静态资源映射,使得可以访问到生成的接口文档java
@Configuration @Slf4j public class WebMvcConfiguration extends WebMvcConfigurationSupport { @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("配置静态资源映射.."); registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
- application.yml中开启文档yml
springfox: documentation: # 启用接口文档dom.html swagger-ui: enabled: true