SpringMVC添加sagger2,使用swagger-ui接口文档

以下修改的文件均可以在搜索中进行搜索(双击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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值