Java swagger
念旧、sunshine 人气:0swagger可能会遇到的问题:
当我们的接口返回的数据太大的时候,swagger会崩溃
1、引入jar包
<!--接口文档--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.10.5</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </exclusion> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> <exclusion> <groupId>org.springframework.plugin</groupId> <artifactId>spring-plugin-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.6.0</version> </dependency>
2、启用swagger application.properties
不用了
#swagger开关
swagger.enable=true
3、配置文件
package com.zkhx.config; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; import java.util.ArrayList; import java.util.List; @Configuration // 标明是配置类 @EnableSwagger2WebMvc @EnableKnife4j @Import(BeanValidatorPluginsConfiguration.class) public class SwaggerConfig { /** * Create rest api docket. * * @return the docket */ @Bean public Docket createRestApi() { ParameterBuilder tokenPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<>(); //header中的token参数非必填,传空也可以 tokenPar.name("token").description("请求接口所需Token") .modelRef(new ModelRef("string")).parameterType("header") .required(false).build(); pars.add(tokenPar.build()); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(metaData()) .select() .apis(RequestHandlerSelectors.basePackage("com.zkhx.controller")) .paths(PathSelectors.any()) .build() .globalOperationParameters(pars); } private ApiInfo metaData() { return new ApiInfoBuilder() .title("XX服务API文档") .description("sun") .termsOfServiceUrl("") .version("1.0") .build(); } }
Docket(DocumentationType.SWAGGER_2) :DocumentationType.SWAGGER_2 固定的,代swagger2
groupName("") // 如果配置多个文档的时候,那么需要配置groupName来分组标识
apiInfo(apiInfo()) // 用于生成API信息
select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 用于指定扫描哪个包下的接口
paths(PathSelectors.any())// 选择所有的API,如果你想只为部分API生成文档,可以配置这里
apiInfo() :
title("XX项目API") // 可以用来自定义API的主标题
description("XX项目SwaggerAPI管理") // 可以用来描述整体的API
termsOfServiceUrl("") // 用于定义服务的域名
version("1.0") // 可以用来定义版本。
三级目录
@Api(tags = “角色管理”) // tags:你可以当作是这个组的名字。
@RestController
public class RoleController {
}
@RestController @Slf4j @RequestMapping("/phm/db") @Api(tags = "数据筛查") public class DbController { @Autowired private StatusDbService statusDbService; @GetMapping("/field/data") @ApiOperation(value = "通过时间及单元id获取数据筛查所需数据") public ResultMsg getFieldByUnitIdWithTime( @ApiParam("结束时间") @RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime); }
访问
加载全部内容