步骤
以下修改的文件均可以在搜索中进行搜索(双击shift键也可以唤起搜索框)
全步骤只需要添加两处配置、添加两份类文件
具体的添加位置都有详细截图,希望能帮上你 ouo
SpringMVC添加sagger2步骤
修改一:pom.xml
首先在配置文件pom.xml引入swagger2与swagger-ui的依赖,文件所在:
添加依赖:在 dependencies 标签下加入如下内容
<!-- swagger2 相关开始 -->
<!-- swagger2核心依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!-- swagger-ui为项目提供api展示及测试的界面 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<!-- swagger2 相关结束 -->
添加位置如图:
添加完成后右下角会有一个弹窗,点击Import Changes
修改二:spring-mvc.xml
修改spring配置文件,搜索文件名即可找到
在最外层 beans 标签下,添加如下内容:
<bean class="com.swagger.SwaggerConfig" />
需改为下一点中创建的swagger相关修改类SwaggerConfig所在位置
这里是我将该类创建在package:com.swagger下的位置
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />
此处需修改SwaggerConfig.java文件的所在位置,一句你的位置修改即可。
若缺少该句或位置不正确,后续会出现swagger-ui界面正常打开,但接口调试返回内容为html文本或类似的问题(刚踩完坑爬出来orz)
添加位置如图:
创建swagger相关修改类
需要创建swagger修改的相关类,记住位置,稍后会用到。
我这里新建一个package:swagger用来存放:
两个类内容分别如下:
添加一:SwaggerConfig.java
需要修改首行所在package,其余直接复制即可
package com.swagger; 这里是如上图我的文件所在package位置,需改为你所在的package位置
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
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.paths.RelativePathProvider;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger配置类
*
* @author yveshe (yveshe@aliyun.com)
* @create 08 26, 2019
* @since 1.0.0
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("开放接口API")
.description("HTTP对外开放接口")
.version("1.0.0")
.termsOfServiceUrl("http://xxx.xxx.com")
.license("LICENSE")
.licenseUrl("http://xxx.xxx.com")
.build();
}
}
添加二:WebAppConfig.java
同样只需要修改首行
package com.swagger; 这里是如上上张图我的文件所在package位置,需改为你所在的package位置
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
public class WebAppConfig extends WebMvcConfigurerAdapter {
@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/");
}
}
查看swagger-ui接口文档页面
运行项目,输入网址 http://localhost:8080/swagger-ui.html#/ (端口号8080需修改为你的实际运行端口)
接口内:
后端接口修改
在springmvc原接口上进行如下修改:
修改一
添加如下内容:
@Api(tags = "你对该部分接口的分类名称,便于接口文档查看,空字段也可")
@RestController
若此处不添加 @RestController ,则接口文档无法访问到接口
具体位置如下图:
修改二
在每个接口前都需要添加:
@ApiOperation(value = "接口名称(便于查看)", notes = "相关注释")
@ApiImplicitParams({
@ApiImplicitParam(name = "参数名称", value = "", required = false, dataType = "参数类型", paramType = "query"),
})
@RequestMapping(value = "接口名称(url调用时使用的名称)", method = {RequestMethod.POST})
@ResponseBody
required 字段表示该参数是否必填
修改完成,即可在Swagger-ui接口文档进行接口测试。祝你好运 ( •̀ ω •́ )y