Swagger

本文介绍了如何配置Swagger,从添加依赖到创建SwaggerConfig,再到生成doc和使用swagger-ui。同时,详细讲解了在Swagger 1.9.0版本中如何进行Basic认证的两种方法,包括配置yml或properties文件,以及在swaggerConfig中添加相关注解。
摘要由CSDN通过智能技术生成

一、pom.xml

<springfox-swagger.version>2.8.0</springfox-swagger.version>
<swagger-bootstrap-ui.version>1.7.2</swagger-bootstrap-ui.version>

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>${springfox-swagger.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>${springfox-swagger.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->
    <dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>swagger-bootstrap-ui</artifactId>
      <version>${swagger-bootstrap-ui.version}</version>
    </dependency>

二、创建配置类 SwaggerConfig

package com.hz52.system.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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @Program: erp
 * @Description:
 * @Author: 52Hz
 * @CreationTime: 2021年08月04日 15:54 星期三
 **/
@Configuration//配置类
@EnableSwagger2 //swagger注解
@EnableSwaggerBootstrapUI
public class SwaggerConfig {


    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();

    }

    private ApiInfo webApiInfo(){

        return new ApiInfoBuilder()
                .title("网站-课程中心API文档")
                .description("本文档描述了项目中心微服务接口定义")
                .termsOfServiceUrl("127.0.0.1:8080")
                .contact("52Hz")
                .version("1.0")
                //.contact(new Contact("java", "http://xxx.com:8001/demo", "xxx@qq.com"))
                .build();
    }


}

三、添加注释,生成doc

常用的标记如下:

@Api()用于类;
标识这个类是swagger的资源
  tags–表示分组说明标签

@ApiOperation()用于方法;
表示一个http请求的操作
  value用于方法描述 

  notes用于提示内容

@ApiModel()用于实体类
表示对类进行说明,用于参数用实体类接收

      value–表示对象名 
      description–描述


@ApiModelProperty()用于实体类字段
表示对model属性的说明或者数据操作更改
  value–字段说明 
  name–重写属性名字 
  dataType–重写属性类型 
  required–是否必填 
  example–举例说明 
  hidden–隐藏


@ApiImplicitParam() 用于 controller 方法
表示单独的请求参数
  name–参数ming
  value–参数说明
  dataType–数据类型
  paramType–参数类型
  example–举例说明

@ApiImplicitParams() 用于 controller 方法,包含多个 @ApiImplicitParam


@ApiIgnore()用于类或者方法上,可以不被swagger显示在页面上

说明:简单的标记只需要@Api(tags="") 和 @ApiOperation(value="",notes="")

 

更多关于 注解用法可以参考https://github.com/swagger-api/swagger-core/wiki/Annotations

四、swagger-ui

http://localhost:8080/swagger-ui.html

在这里插入图片描述

在这里插入图片描述

四、doc

http://localhost:8080/doc.html 

在这里插入图片描述

五、配置权限(升级)

在1.9.0版本时,针对Swagger的资源接口,SwaggerBootstrapUi提供了简单的Basic认证功能。

在这里插入图片描述

方法一

升级Swagger1.9.0

<springfox-swagger.version>2.8.0</springfox-swagger.version>
<swagger-bootstrap-ui.version>1.9.0</swagger-bootstrap-ui.version>

 <!-- 引入Swagger-->
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${springfox-swagger.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${springfox-swagger.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>${swagger-bootstrap-ui.version}</version>
        </dependency>

配置yml文件

swagger:
 production: false
 basic:
  enable: true
  username: admin
  password: 123456

OR

配置properties

#配置Swagger接口文档需要登录
swagger.production=false
swagger.basic.enable=true
swagger.basic.username=admin
swagger.basic.password=123456

以上分别为启用,并且用户名为admin.密码为123456。

切记swagger.production 不可设置为true,否则将屏蔽所有资源

在swaggerConfig中添加注解

@EnableSwaggerBootstrapUI

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cdFgHkB2-1628833397762)(D:\管理系统.assets\image-20210804172753728.png)]

方法二

@Profile({"dev","test"})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值