SpringBoot整合Swagger

一、Swagger简介

       随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了前后端分离的形态,而且前 端技术和后端技术在各自的道路上越走越远。前端和后端的唯一联系,变成了 API 接口,所以 API 文档 变成了前后端开发人员联系的纽带,变得越来越重要。

        那么问题来了,随着代码的不断更新,开发人员在开发新的接口或者更新旧的接口后,由于开发任务的 繁重,往往文档很难持续跟着更新,Swagger 就是用来解决该问题的一款重要的工具,对使用接口的人 来说,开发人员不需要给他们提供文档,只要告诉他们一个 Swagger 地址,即可展示在线的 API 接口 文档,除此之外,调用接口的人员还可以在线测试接口数据,同样地,开发人员在开发接口时,同样也 可以利用 Swagger 在线接口文档测试接口数据,这给开发人员提供了便利。

      Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格的web服务

二、Swagger作用:

     1、接口的文档在线自动生成

     2、功能测试

三、Swagger常用注解:

      @Api :可以用来标记 Controller 的功能

      @ApiOperation:用来标记一个方法的作用

      @ApilmplicitParam:用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入

      @ApilmplicitParams:如果有多个参数,则需要使用多个 @ApilmplicitParam 注解来描述, 多个 @ApilmplicitParam 注解需要放在一个 @ApilmplicitParams 注解中

      @ApiModel :如果参数是一个对象,则需要在对象所在的类上加上此注解

      @ApiModelProperty :如果参数是一个对象,则需要在对应的属性上加上此注解,还需要在对象所在的类上加上 @ApiModel

      @ApiIgnore:注解标识此参数可以忽略

四、SpringBoot整合Swagger

     1、引入依赖

<!--配置swagger-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.1</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.1</version>
</dependency>

        注意: Swagger的访问页面是swagger-ui.html;加入如下依赖可以让Swagger的页面更清晰、更漂亮

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.6</version>
</dependency>

 加入以上依赖后Swagger的访问页面为doc.html

        2、在application.yml中添加配置

#配置Swagger
swagger:
  basePackage: com.swa.swaggerdemo.controller #Controller所在的包
  title: Swagger测试 #Swagger文档标题
  description: 首次使用Swagger #详细描述
  version: V1.0 #版本号

        3添加swagger配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Value("${swagger.basePackage}")
    private String basePackage;  //controller所在的包
    @Value("${swagger.title}")
    private String title;//当前文档的标题
    @Value("${swagger.description}")
    private String description;//当前文档的详细描述
    @Value("${swagger.version}")
    private String version; //当前文档的版本

    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo()) //指定构建api文档的详细信息的方法:apiInfo()
                .select()
                //指定要生成api接口的包路径,这里把controller作为包路径,生成controller中的所有接口
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build();
    }
    /*
      构建api文档的详细信息
     */
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title(title) //设置标题
                .description(description) //设置接口描述
                .version(version) //设置版本
                .build();
    }
}

         4、创建Controller

@Api(value = "测试用控制器")
@RestController
public class SwaggerTestController {
    @ApiOperation(value = "测试接口")
    @GetMapping("/hello")
    public String hell(){
        return "I Love You";
    }

         5、测试

               启动项目,访问地址:

                       http://localhost:端口号/项目名称/swagger-ui.html     

              当然,也有很多spring boot的项目是没有项目名称的,

                       http://localhost:端口号/swagger-ui.html

               本项目的地址是 http://localhost:8080/swagger-ui.html

若访问清晰漂亮的页面,输入地址:http://localhost:8080/doc.html

 

  

      6、带参数测试

            (1)添加Controller

@ApiOperation(value = "测试参数传递")
@ApiImplicitParam(name = "pid", value = "商品id", required = true, dataType = "Integer", paramType = "path")
@PostMapping("/params/{pid}")
public String findById(@PathVariable("pid") Integer pid){
    return "您输入的书号是:"+pid;
}

           (2)测试

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上庸者-不服周

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值