时间:2022-10-22 13:57:25 | 栏目:JAVA代码 | 点击:次
依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.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.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * Swagger的配置类 * @author 陈加兵 * */ @Configuration public class SwaggerConfig{ /** * 创建用户API文档 * @return */ @Bean public Docket createRestUserApi(){ return new Docket(DocumentationType.SWAGGER_2) .groupName("user") .apiInfo(apiInfo()) //api的信息 .select() .apis(RequestHandlerSelectors .basePackage("cn.tedu.mycat.controller")) //添加包扫描 .paths(PathSelectors.any()).build(); } /** * 创建API信息 */ private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("api文档的标题") //标题 .description("api文档的描述") //描述 .contact( //添加开发者的一些信息 new Contact("爱撒谎的男孩", "https://chenjiabing666.github.io", "18796327106@163.com")).version("1.0").build(); } }
启动类
在springBoot的启动类上添加一个注解即可配置成功: @EnableSwagger2
访问api的路径
http://ip/projectName/swagger-ui.html
注解说明
@Api
属性名称 | 备注 | 默认值 |
---|---|---|
value | url的路径值 | |
tags | 如果设置这个值、value的值会被覆盖 | |
description | 对api资源的描述 | |
basePath | 基本路径可以不配置 | |
position | 如果配置多个Api 想改变显示的顺序位置 | |
produces | For example, “application/json, application/xml” | |
consumes | For example, “application/json, application/xml” | |
protocols | Possible values: http, https, ws, wss. | |
authorizations | 高级特性认证时配置 | |
hidden | 配置为true 将在文档中隐藏 |
@ApiOperation
value | url的路径值 | |
---|---|---|
tags | 如果设置这个值、value的值会被覆盖 | |
notes | 对api资源的描述 | |
response | 返回的对象,在文档中点击Model可以获取该配置的内容 | |
responseContainer | 这些对象是有效的 “List”, “Set” or “Map”.,其他无效 | |
responseReference | 可以不配置 | |
httpMethod | 可以接受 “GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH” | |
position | 如果配置多个Api 想改变显示的顺序位置 | |
produces | 同 Api中的定义 | |
consumes | 同 Api中的定义 | |
protocols | 同 Api中的定义 | |
authorizations | 同 Api中的定义 | |
hidden | 是否隐藏,true 或者false ,这个可以隐藏后台接口 | |
code | http的状态码 默认 200 | |
extensions | 扩展属性 |
@ApiImplicitParams
@ApiImplicitParam
用在 @ApiImplicitParams 注解中,也可以单独使用,说明一个请求参数的各个方面
详细的属性使用说明如下:
paramType属性的详细说明
@ApiOperation(value="根据用户Id获取用户信息",response=User.class,hidden=false) @ApiImplicitParams({ @ApiImplicitParam(paramType = "path", name = "id", dataType="Integer", required = false, value = "用户的id", defaultValue = "1") }) @GetMapping("/user/get/{id}") public Object getUser(@PathVariable("id")Integer id){ return new User(id, "陈加兵"); }