zl程序教程

您现在的位置是:首页 >  其他

当前栏目

插件---Swagger3使用

2023-03-14 22:48:05 时间

使用

1.在pom文件中加依赖

<dependency>
     <groupId>io.springfox</groupId>
      <artifactId>springfox-boot-starter</artifactId>
      <version>3.0.0</version>
</dependency>

2.Configuration配置类

2.Configuration配置类
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
/**
 * @Author: Re
 * @Date: 2021/4/26 14:02
 */
@Configuration
@EnableOpenApi
public class Swagger3Config {
    // 配置 Swagger 的Docket的bean实例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .groupName("二姑娘")
                // enable 是否启动Swagger,如果为False,则Swagger不能在浏览器中访问
                // .enable(false)
                .select()
                // RequestHandlerSelectors 配置要扫描的接口方式
                // basePackage: 指定要扫描的包 通常使用这个
                // any(): 扫描全部
                // none(): 不扫描
                // withClassAnnotation: 扫描类上的注解,参数是一个注解的反射对象
                // withMethodAnnotation: 扫描方法上的注解,参数是一个注解的反射对象
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                // path() 过滤什么路径
                // .paths(PathSelectors.ant(""))
                .build();
    }
    private ApiInfo apiInfo(){
        // 配置Swagger 信息 = apiInfo
        // 作者信息 自己看着改
        return new ApiInfo(
                "二丫头的Swagger3测试",
                "二丫头的座右铭",
                "v1.0",
                "#",
                new Contact("二姑娘","#","1845620049@qq.com"),
                "Apache 2.0",
                "#",
                new ArrayList<>());
    }
}

注:如果要协同开发就需要多个Docket 方法来分组

Swagger注解

@Api:用在请求的类上,表示对类的说明 tags=“说明该类的作用,可以在UI界面上看到的注解”

value=“该参数没什么意义,在UI界面上也看到,所以不需要配置”

@ApiOperation:用在请求的方法上,说明方法的用途、作用 value=“说明方法的用途、作用”

notes=“方法的备注说明”

@ApiImplicitParams:用在请求的方法上,表示一组参数说明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

name:参数名

value:参数的汉字说明、解释

required:参数是否必须传

paramType:参数放在哪个地方

· header --> 请求参数的获取:@RequestHeader

· query --> 请求参数的获取:@RequestParam

· path(用于restful接口)–> 请求参数的获取:

@PathVariable

· body(不常用)

· form(不常用)

dataType:参数类型,默认String,其它值dataType=“Integer”

defaultValue:参数的默认值

@ApiResponses:用在请求的方法上,表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

code:数字,例如400

message:信息,例如"请求参数没填好"

response:抛出异常的类

@ApiModel:用于响应类上,表示一个返回响应数据的信息

(这种一般用在post创建的时候,使用@RequestBody这样的场景,

请求参数无法使用@ApiImplicitParam注解进行描述的时候) @ApiModelProperty:用在属性上,描述响应类的属性

访问地址:

localhost:port/swagger-ui/index.html

knife4j

添加依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <!--在引用时请在maven中央仓库搜索最新版本号-->
    <version>2.0.2</version>
</dependency>

访问地址

localhost:port/doc.html