文章目录
- 1、依赖
- 2、配置类
- 3、注解引用
-
- 3.1、Api
- 3.2、ApiOperation
- 3.3、ApiParam
- 3.4、ApiModel(一般用在实体类上)
- 3.5、ApiModelProperty(一般用在实体类的属性上)
- 3.6、ApiIgnore
- 3.7、ApiImplicitParam
1、依赖
注意:SpringBoot的要自己引用
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<scope>provided </scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<scope>provided </scope>
</dependency>
2、配置类
注意:照着改改就行,没什么操作性
package com.zhz.servicebase.config;
import com.google.common.base.Predicates;
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.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author mac
*/
@Configuration//配置类
@EnableSwagger2//swagger注解
public class SwaggerConfig {
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("webApi")
.apiInfo(webApiInfo())
.select()
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.build();
}
private ApiInfo webApiInfo() {
return new ApiInfoBuilder()
.title("网站-课程中心API文档")
.description("描述课程中心微服务的接口文档")
.version("1.0")
.contact(new Contact("zhz","https://blog.csdn.net/zhouhengzhe?t=1","1871229316@qq.com"))
.build();
}
}
接下来在SpringBoot的启动类上加@ComponentScan(basePackages = {“配置类的包路径”})
3、注解引用3.1、Api
@Api 是类上注解。控制整个类生成接口信息的内容。
tags:类的名称。可以有多个值,多个值表示多个副本。
description:描述,已过时
@RestController
@RequestMapping("/people")
@Api(tags = {"mydemo"},description = "描述") public class DemoController {
}
3.2、ApiOperation
@ApiOperation 写在方法上,对方法进行总体描述
value:接口描述
notes:提示信息
@ApiOperation(value="接口描述",notes = "接口提示信息")
3.3、ApiParam
@ApiParam 写在方法参数前面。用于对参数进行描述或说明是否为必添项等说明。
name:参数名称
value:参数描述
required:是否是必须
public People getPeople(Integer id, @ApiParam(value="姓名",required = true) String name, String address)
3.4、ApiModel(一般用在实体类上)
@ApiModel 是类上注解,主要应用 Model,也就是说这个注解一 般都是写在实体类上。
value:名称
description:描述
@ApiModel(value = "人类",description = "描述") public class People {}
3.5、ApiModelProperty(一般用在实体类的属性上)
@ApiModelProperty 可以用在方法或属性上。用于当对象作为参数时定义这个字段的内容。
value:描述
name:重写属性名
required:是否是必须的
example:示例内容
hidden:是否隐藏。
@ApiModelProperty(value = "姓名",name = "name",required = true,example = "张三 ")
private String name;
3.6、ApiIgnore
@ApiIgnore 用于方法或类或参数上,表示这个方法或类被忽略。 和之前讲解的自定义注解@NotIncludeSwagger 效果类似。只是这个注 解是Swagger内置的注解,而@NotIncludeSwagger是我们自定义的注 解。
3.7、ApiImplicitParam
@ApiImplicitParam用在方法上,表示单独的请求参数,总体功能 和@ApiParam 类似。
name:属性名
value:描述
required:是否是必须的
paramType:属性类型
dataType:数据类型
@PostMapping("/getPeople")
@ApiImplicitParam(name = "address",value = "地址",required = true,paramType = "query",dataType = "string")
public People getPeople(Integer id, @ApiParam(value="姓名",required = true) String name, String address){
我是小白弟弟,一个在互联网行业的小白,立志成为一名架构师