pom.xml:
<!--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>
Swagger2类:
package com.example.shopgoods.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
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.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Author: zp
* @Date: 2019/4/19 13:43
* @Description:
*/
/**
* Swagger2配置类
* 在与spring boot集成时,放在与Application.java同级的目录下。
* 通过@Configuration注解,让Spring来加载该类配置。
* 再通过@EnableSwagger2注解来启用Swagger2。
*/
@Configuration
@EnableSwagger2
@Profile({"dev"})
public class Swagger2 {
/**
* 创建API应用
* apiInfo() 增加API相关信息
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
* 本例采用指定扫描的包路径来定义指定要建立API的目录。
*
* @return
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
* 访问地址:http://项目实际地址/swagger-ui.html
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot集成Swagger2构建RESTful APIs")
.description("更多请关注<Swagger使用指南>")
.termsOfServiceUrl("https://blog.csdn.net/sanyaoxu_2/article/details/80555328")
.version("2.6.1")
.build();
}
}
Controller层代码列如:
/**
* 下单校验接口
* @param checkOrderRequestDTO
* @return
*/
@ApiOperation(value = "下单校验接口")
@PostMapping("/check")
@ApiImplicitParam(name = "checkOrderRequestDTO", value = "下单时商品信息", dataType = "CheckOrderRequestDTO")
public Result<Boolean> checkOrder(@RequestBody CheckOrderRequestDTO checkOrderRequestDTO) {
return Boolean.TRUE;
}
入参和出参的注释:
package com.ecshop.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author: zp
* @Date: 2019/4/17 18:06
* @Description:
*/
@Data
@ApiModel(value = "CheckOrderRequestDTO", description = "下单时商品信息")
public class CheckOrderRequestDTO {
//商品id
@NotNull(message = "商品id不能为null")
@ApiModelProperty(value = "商品id")
private Integer goodsId;
//商品属性id
@NotNull(message = "商品属性id不能为null")
@ApiModelProperty(value = "商品属性id")
private Integer goodsAttrId;
//下单时购买的商品数量
@NotNull(message = "商品数量不能为null")
@ApiModelProperty(value = "商品数量")
private Integer goodsNumber;
}
完成上述代码添加上,启动Spring Boot程序,访问:http://localhost:8080/swagger-ui.html
相关文献:
Swagger使用指南
Swagger与RestFul 集成 以及 注解使用Demo
微服务之Swagger
关于Swagger @ApiModel 返回内容注释不显示问题