注:本文是利用swagger.json将项目导入ApiFox
一、引入swagger2的依赖
<!--swagger API获取-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger-ui API获取-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
二、编写Swagger配置类
package com.example.demo.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.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableSwagger2
@Configuration
public class SwaggerConfig {
/**
* 创建API
*/
@Bean
public Docket createRestApi() {
// 指定扫描包路径
return new Docket(DocumentationType.SWAGGER_2) // 指定生成的文档的类型是Swagger2
// .pathMapping("/swagger")
// 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息),配置文档页面的基本信息内容
// 设置哪些接口暴露给Swagger展示
.select()
// 扫描所有有注解的api,用这种方式更灵活
//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
// 扫描所有 .apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()).build();
}
/**
* 添加摘要信息
*/
private ApiInfo apiInfo() {
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
.title("描述:Spring Boot中使用Swagger2构建RESTful APIs")
// 描述
.description("swagger 测试demo")
// 版本
.version("版本号: 1.0.1")
.build();
}
}
三、标明Swagger注解
package com.example.demo.controller;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.example.demo.entity.Goods;
import com.example.demo.entity.Goods1;
import com.example.demo.service.Goods1Service;
import com.example.demo.service.GoodsService;
import com.example.demo.utils.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* (Goods)表控制层
*
* @author makejava
* @since 2022-10-21 23:04:08
*/
@RestController
@RequestMapping("goods")
@Api(tags = "GoodsController")
public class GoodsController extends ApiController {
/**
* 服务对象
*/
@Resource
private GoodsService goodsService;
@Resource
private Goods1Service goods1Service;
/**
* @return 所有数据
*/
@PostMapping("recommend")
@ApiOperation(value = "recommendGoods", notes = "Returns a list of recommended goods")
public void recommendGoods(Long userId) {
//方法体略
}
@PostMapping("predict")
@ApiOperation(value = "predictOrder", notes = "Returns a list of predicting goods")
public void predictOrder(Long userId) {
//方法体略
}
}
四、启动springboot访问swagger
启动失败的同学要注意下springboot 与 swagger 的版本搭配 :
springboot | swagger |
2.5.6 | 2.6.1~2.9.2 |
swagger-ui地址:
http://localhost:8081/swagger-ui.html
点击/v2/api-docs 下载swagger.json文件。
五、将文件导入apifox
内部还有本地mock、云端mock数据测试功能,快试试吧!