文章目录

  • 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){

SpringBoot继承Swagger_spring boot

我是小白弟弟,一个在互联网行业的小白,立志成为一名架构师