SpringBoot集成Swagger2自动生成接口文档

SpringBoot集成Swagger2自动生成接口文档

IBM官网中的Swagger2教程:

https://www.ibm.com/developerworks/cn/java/j-using-swagger-in-a-spring-boot-project/index.html

1.添加官方依赖

我写文章的时候,Maven存储库中最新的Swagger2版本号为2.9.2,那就使用此版本。

Maven存储库io.springfox/springfox-swagger2

  <dependencies>
  ...
     <!-- swagger 接口文档-->
     <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
 ...
    </dependencies>

2.添加swagger2配置类

package com.lipiao.traveltreasure.Config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration //标记配置类
@EnableSwagger2 //开启在线接口文档
public class SwaggerConfig {
    /**
     * 添加摘要信息(Docket)
     */
    @Bean
    public Docket controllerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("Find-车行宝 接口文档")
                        .description("描述:用于管理活动信息,用户信息,订单信息,资产信息...")
                        .contact(new Contact("李飘", "https://blog.csdn.net/qq_42391904", "[email protected]"))
                        .version("版本号:1.0")
                        .build())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.lipiao.traveltreasure.controller"))
                .paths(PathSelectors.any())
                .build();
    }
}

3.添加控制器中添加接口文档信息

3.1Controller类配置接口名

@Api(tags = “活动信息接口”)

@Api(tags = "活动信息接口")
@Controller
@RequestMapping(value = "/travelTreasureApi/activity")
public class ActivityController {

...

}

3.2 Controller类方法配置请求方法

@ApiOperation(value = “获取用户信息”, notes = “注意事项”)

   @ApiOperation(value = "获取用户信息", notes = "注意事项")
    @GetMapping("/getActivityList")
    @ResponseBody
    public Map<String, Object> getActivityList() {
       ...
    }

3.3 Controller类方法的参数

@ApiImplicitParams 多个请求参数

@ApiImplicitParam 单个请求参数 其中name参数名 dataType数据类型 required是否

 @ApiImplicitParams({
     @ApiImplicitParam(name = "name", dataType = "String", required = true) 
 })

除了以上接口名、请求方法、参数以外还可配置 返回信息

  • @ApiModel:用对象来接收参数
  • @ApiProperty:用对象接收参数时,描述对象的一个字段
  • @ApiResponse:HTTP响应其中1个描述
  • @ApiResponses:HTTP响应整体描述
  • @ApiIgnore:使用该注解忽略这个API
  • @ApiError :发生错误返回的信息

4.效果图:

访问 localhost:9090/swagger-ui.html 即可

在这里插入图片描述

发布了67 篇原创文章 · 获赞 32 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42391904/article/details/102534577