首先添加Swagger2依赖
在pom.xml中添加Swagger依赖,代码如下:
<!-- Swagger2 api接口插件 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
创建Swagger2配置类
可以新建一个Configuration的文件夹,在Configuration文件夹里新建SwaggerConfig.java.(或者在Application.java
同级创建Swagger2的配置类SwaggerConfig也是可以的)
在SwaggerConfig.java,代码如下:
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;
/**
* Swagger配置类
* Create by silin
* Date: 2019/1/24 10:23
*/
@Configuration //标记配置类
@EnableSwagger2 //开启在线接口文档
public class SwaggerConfig {
/*
* 添加摘要信息(Docket)
* */
@Bean
public Docket controllerApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("标题:silin_书籍推荐小程序后台系统_接口文档")
.description("描述:用于管理书籍推荐小程序,具体包括XXX,XXX模块...")
.contact(new Contact("本书鸣天鸣", null, null))
.version("版本号:1.0")
.build())
.select()
.apis(RequestHandlerSelectors.basePackage("com.silin.controller"))/*包的路径*/
.paths(PathSelectors.any())
.build();
}
Swagger2 基本使用:
- @Api 描述类/接口的主要用途
- @ApiOperation 描述方法用途
- @ApiImplicitParam 描述方法的参数
- @ApiImplicitParams 描述方法的参数(Multi-Params)
- @ApiIgnore 忽略某类/方法/参数的文档
Swagger2 使用注解来编写文档:
Swagger2编写接口文档相当简单,只需要在控制层(Controller)添加注解来描述接口信息即可。例如:
/** * 用户添加 * Create by silin * Date: 2018/8/19 22:14 */ @Api(tags = "书籍添加") @RestController @RequestMapping("/booker/book") @Slf4j public class BookAddController { @Autowired private BookInfoService bookInfoService; @Autowired private CategoryService categoryService; /**添加页主页*/ @GetMapping("/index") @ApiOperation("书籍添加主页") public ResultVO index(){ //查询所有的类目 List<BookCategory> categoryList = categoryService.findAll(); //新建一个List存放所需的信息 List<BookCategoryVO> bookInfoList1 = new ArrayList<>(); //for循环复制所需信息 for(BookCategory bookCategory : categoryList){ BookCategoryVO bookCategoryVO = new BookCategoryVO(); BeanUtils.copyProperties(bookCategory,bookCategoryVO); bookInfoList1.add(bookCategoryVO); } return ResultVOUtil.success(bookInfoList1); } }
编写文档完成之后,启动当前项目,在浏览器打开:
[ http://localhost:8080/swagger-ui.html ] , (这里我的应用的url加多了一个路径,看自身项目所需,而修改)看到效果如下: