用原始的swagger,可嫩滑对于封装map和实体类,jsaonobject的参数不太方便,但是,用knofe4j就可以实现了
查看路径:http://localhost:8181/sa/doc.html
1. pom依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.8</version>
</dependency>
2.配置
@Configuration
@EnableSwagger2WebMvc
public class SwaggerConfig {
@Bean(value = "api")
public Docket defaultApi2() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.description("# 文档的描述")
.version("1.0")
.build())
//分组名称
.groupName("1.X版本")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.ify.sampleAdmin.web.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
3.使用
@RestController
@RequestMapping("/user")
@Api(tags = "用户模块")
public class UserController extends BaseController {
@GetMapping("/user")
@ApiOperation(value = "获取根据ID获取用户")
@ApiImplicitParam(name = "id",value = "用户id",required = true)
public ResResult getUser(@RequestParam(value = "id") String id) {
return ResResult.success();
}
}
4.注解介绍
@Api(tags = “”):接口分组
@ApiOperation(value = “”):接口名称
@ApiImplicitParam(name = “id”,value = “用户id”,required = true):接口参数声明
// 提供了过滤和包含参数的注解,可以排除或包含必须参数来简洁文档(用在实体类上)。
@ApiOperationSupport(ignoreParameters = {"id","orderDate.id"})
@ApiOperationSupport(order = 40,includeParameters = {"ignoreLabels","longUser.ids"})
// 传递参数都是Map或者JSONObject
@DynamicParameters(properties = {
@DynamicParameter(name = "id",value = "ID",example = "X000111",required = true,dataTypeClass = String.class),
@DynamicParameter(name = "username",value = "用户名",required = true),
@DynamicParameter(name = "password",value = "密码",required = true),
@DynamicParameter(name = "sex",value = "性别",required = false),
})