【一】、导入pom依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
【二】、配置文件
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;
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.hikvision.pbg.web.modules"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("预测应用")
.description("预测应用 API接口文档")
.version("1.0.0")
.build();
}
}
【三】、常用注解
@Api(description = "预测API接口")
@RestController
public class PredictionController {
@Autowired
private TrackPredictionService predictionInfoService;
private static final AriesJcLogger LOGGER = AriesJcLoggerFactory.getLogger(TrackPredictionController.class);
@ApiOperation(value="未来",notes = "未来",produces = "application/json")
@PostMapping("/getPredictionInfo")
public BaseResult<List<PredictionInfoVO>> getPredictionInfo(@Valid @RequestBody Map<String, Object> map) {
LOGGER.info("接口getHistoryVehiclePassList输入的参数map为:{}", JSONObject.toJSONString(map));
List<PredictionInfoVO> result = predictionInfoService.getPredictionInfo(map);
return BaseResult.success(result);
}
}
【四】、访问方式
ip:port/swagger-ui.html eg:http://1.1.113.112:9090/web/swagger-ui.html
【五】、常见异常信息
Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. For e.g. if the api is available at http://example.org/api/v2/api-docs then the base url is http://example.org/api/. Please enter the location manually
原因:扫描不到swaggerConfig所在的路径,所以需要在启动类的ComponentScan中加入类的路径:@ComponentScan("")